2010-09-24 4 views
0

J'ai la prochaine tableau: Tableau ( [1000] => array ( [pv] => 81 )php Get tableau niveau de tableau Arbre

[1101] => Array 
    (
     [1102] => Array 
      (
       [pv] => 33 
      ) 

     [1103] => Array 
      (
       [pv] => 15 
      ) 

     [pv] => 72 
    ) 

) Je veux Faire un nouveau tableau à partir de ceci comme ceci:

Array(
[1000] => Array(['generation'] => 1, ['pv'] => 81) 
[1101] => Array(['generation'] => 1, ['pv'] => 72) 
[1102] => Array(['generation'] => 2, ['pv'] => 33) 
[1103] => Array(['generation'] => 2, ['pv'] => 15) 
) 

Génération est un niveau de profondeur de la matrice. Il y a beaucoup de niveaux. Merci.

+0

par erreur que vous avez posté deux fois la même question. S'il vous plaît supprimer cette question. – codaddict

+0

duplication possible de [php Obtenir tableau de niveau à partir Array Tree] (http://stackoverflow.com/questions/3784892/php-get-level-array-from-array-tree) – oezi

+1

vous avez demandé 4! questions très similaires hier. N'as-tu rien appris de ces solutions? c'est juste une minuscule modification des autres. Je ne veux pas être méchant, mais avez-vous même essayé de le faire vous-même - et, si vous avez, pourriez-vous s'il vous plaît poster votre code afin que nous puissions vous apprendre ce qui ne va pas? – oezi

Répondre

3

Soyez créatif ...

function coffee($elm, $cur_key=NULL, $level=0, &$push_arr=NULL){ 
    if(!is_array($push_arr)) $pusH_arr = array(); 
    $level++; 
    foreach($elm as $key=>$val){ 
     if($key == 'pv'){ 
     $push_arr[$cur_key] = array(
      'generation' => $level, 
      'pv' => $val 
     ); 
     } 
     else if(is_array($val)){ 
     coffee($val, $key, $level, $push_arr); 
     } 
     else{ 
     // unexpected value 
     } 
    } 
    return $push_arr; 
} 
// Usage: 
$normalised_array = coffee($array_from_your_question);