PHP bir çok-boyutlu bir dizi geçiş için bir özyinelemeli yöntem

0 Cevap php

Ben fonksiyon kendisini çağıran kullanmadan PHP çok boyutlu bir dizi çapraz bir yöntem gerekir.

Temelde böyle bir dizi var:

$data = array(
    'hoge' => 123,
    'foo' => 456,
    'bar' => 789,
    'aaa' => array(
        'abc' => 111,
        'bcd' => 222,
        'cde' => 333
    ),
    'bbb' => array(
        'def' => array(
            'efg' => 'hoge'
        )
    ),
    'stacks' => array(
       'a',
       'b'=> array('qwe' => 111, 
                   'asd' => 222, 
                   'args' => array('1', 
                                   '2', 
                                   '3')),
       'c'
    )
);

Genellikle bu gibi bir işlevi kullanın:

    function get_array_elems($arrResult, $where="array"){
      while(list($key,$value)=each($arrResult)){
        if (is_array($value)){
          get_array_elems($value, $where."[$key]");
        }
      } else {
        ...anything
      }
    }


get_array_elems($arrResult);

I bir PHP işlevi bu yöntemi yazmak zorunda çünkü bu yöntemi kullanamazsınız ve başka bir fonksiyonu bir fonksiyon yazamıyor.

Böyle iken, foreach, array_walk_recursive vb gibi bir iteratif yöntem kullanılarak yapılabilir mi?

0 Cevap