2

我有以下多维数组:

$array = array(
  1 => null,
  2 => array(
    3 => null,
    4 => array(
      5 => null,
    ),
    6 => array(
      7 => null,
    ),
  )
);

如果我使用以下代码遍历数组

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach ($iterator as $key => $value) {
  echo $key.' ';
}        

它只输出没有分配数组的键。IE

1 3 5 7

我怎样才能让它包含所有的键?

4

1 回答 1

6

您只需要正确设置模式。从手册

RecursiveIteratorIterator::SELF_FIRST - 列出迭代中的叶子和父母,父母先来。

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)
                                          , RecursiveIteratorIterator::SELF_FIRST);
于 2016-03-02T18:53:28.797 回答