PHP递归函数,用于向多维数组的每个级别添加新元素

时间:2009-11-24 22:43:01

标签: php recursion multidimensional-array

如何使用PHP为多维数组的每个“级别”添加新索引?

例如,对于以下数组:

$array = array(
    'a' => 'a val',
    'b' => array(
        'ba' => 'ba value',
        'bb' => array(
            'bba' => 'bba value'
        ),
        'bc' => 'bc value'
    ),
    'c' => 'c val',
    'd' => 'd val'
);

......会变成:

$array = array(
    'a' => 'a val',
    'b' => array(
        'ba' => 'ba value',
        'bb' => array(
            'bba' => 'bba value',
            'new index' => 'new index value'
        ),
        'bc' => 'bc value',
        'new index' => 'new index value'
    ),
    'c' => 'c val',
    'd' => 'd val',
    'new index' => 'new index value'
);

提前致谢,
性标题

2 个答案:

答案 0 :(得分:1)

function addIndex($arr){
  if(!is_array($arr)){ return; }
  foreach($arr as &$a){
    if(is_array($a)){
      $a = addIndex($a);
    }
  }
  $arr['new index'] = 'new index value';
  return $arr;
}

答案 1 :(得分:1)

来自phpdeveloper的更正功能

function addIndex($arr){
  if(!is_array($arr)){ return; }
  foreach($arr as &$a){
    if(is_array($a)){
      $a = addIndex($a);
    }
  }
  $arr['new index'] = 'new index value';
  return $arr;
}