代码之家  ›  专栏  ›  技术社区  ›  Alex Pliutau

php从数组树中获取级别数组

  •  0
  • Alex Pliutau  · 技术社区  · 14 年前

    我有下一个数组: 数组 [1000]=>阵列 ( [pv]=>81

    [1101] => Array
        (
            [1102] => Array
                (
                    [pv] => 33
                )
    
            [1103] => Array
                (
                    [pv] => 15
                )
    
            [pv] => 72
        )
    

    )

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

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Lekensteyn    14 年前

    要有创造力。。。

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