Bir çok boyutlu dizinin her düzeyde yeni bir öğe eklemek için PHP recurrsive işlevi

1 Cevap php

Nasıl boyutlu dizinin her 'seviye' yeni bir dizin eklemek için PHP kullanarak, mümkün mü?

Örneğin, aşağıdaki dizi için:

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

... Dönüşecekti:

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

Thanks in advance,
titel

1 Cevap

Phpdeveloper gelen düzeltilmiş işlevi

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