简体   繁体   English

php从数组树获取级别数组

[英]php Get level array from Array Tree

I Have the next array: Array ( [1000] => Array ( [pv] => 81 ) 我有下一个数组:Array([1000] => Array([pv] => 81)

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

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

        [pv] => 72
    )

) I want to make new array from this like this: )我想像这样制作新的数组:

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)
)

Generation is a level of array's deep. 生成是数组的深层次。 There are a lot of levels. 有很多层次。 Thanks. 谢谢。

Be creative... 有创造力...

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM