Php 递归遍历数组

Php 递归遍历数组,php,Php,我想让这个函数遍历这个多维数组,得到“finally”值。函数的作用是:检索随机数目的参数,因此数组维数未知 我该怎么做 我一直在想一些递归的方法…但是,好吧,我什么都想不出来。你能给我一些建议吗?你可以用这个小班 $arr = array('aaa' => array('bbb' => array('ccc' => array('ddd' => 'finally')))); function walk

我想让这个函数遍历这个多维数组,得到“finally”值。函数的作用是:检索随机数目的参数,因此数组维数未知

我该怎么做


我一直在想一些递归的方法…但是,好吧,我什么都想不出来。你能给我一些建议吗?

你可以用这个小班

$arr = array('aaa' => 
   array('bbb' => 
      array('ccc' => 
         array('ddd' => 
            'finally'))));

function walk($args) {
   $keys = get_func_args();
   // ...
}

walk('aaa', 'bbb', 'ccc', 'ddd');
$arr = array('aaa' => 
   array('bbb' => 
      array('ccc' => 
         array('ddd' => 
            'finally'))));

function walk() {

  $keys = func_get_args();

  $array = array_shift($keys);

  foreach ($keys as $key)
  {
    $array = $array[$key];
  }

  return $array;

}

echo walk($arr, 'aaa', 'bbb', 'ccc', 'ddd'); // finally
阶级


你可以用这个小班

$arr = array('aaa' => 
   array('bbb' => 
      array('ccc' => 
         array('ddd' => 
            'finally'))));

function walk() {

  $keys = func_get_args();

  $array = array_shift($keys);

  foreach ($keys as $key)
  {
    $array = $array[$key];
  }

  return $array;

}

echo walk($arr, 'aaa', 'bbb', 'ccc', 'ddd'); // finally
阶级


创建一个新函数,该函数接受一个键数组和一个索引。对于每个新调用,将索引增加1,直到它成为最后一个键。那是你知道你有答案的时候

class Walker {
    private $a; // array
    function __construct($a) {
        $this->a = $a;
    }

    function find() {
        $temp = $this->a;
        foreach ( func_get_args() as $key ) {
            $temp = isset($temp[$key]) ? $temp[$key] : null;
        }
        return $temp;
    }
}

创建一个新函数,该函数接受一个键数组和一个索引。对于每个新调用,将索引增加1,直到它成为最后一个键。那是你知道你有答案的时候

class Walker {
    private $a; // array
    function __construct($a) {
        $this->a = $a;
    }

    function find() {
        $temp = $this->a;
        foreach ( func_get_args() as $key ) {
            $temp = isset($temp[$key]) ? $temp[$key] : null;
        }
        return $temp;
    }
}

空闲时间项目,我只是好奇你做过什么研究吗?告诉我们你发现了什么,为什么它不能满足你的需要?我必须使用另一个带有array\u walk\u recursive()的函数,对吗?我只想用一个来做这件事。你说的walk()函数检索随机数的参数是什么意思?你期望的输出自由时间项目是什么?我只是好奇你做过什么研究吗?告诉我们你发现了什么,为什么它不能满足你的需要?我必须使用另一个带有array\u walk\u recursive()的函数,对吗?我只想用一个。你说的walk()函数检索随机数的参数是什么意思?你期望的输出是什么?是的,这就是我想要的……我必须改变职业……是的,这就是我想要的……我必须改变职业。。。