PHP RecursiveIteratorIterator не выводит все ключи

У меня есть следующий многомерный массив:

$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.' ';
}        

он выводит только ключи без назначенных им массивов. Т.е.

1 3 5 7

Как я могу заставить это включать все ключи?

1 ответ

Решение

Вам просто нужно правильно установить режим. Из руководства:

RecursiveIteratorIterator:: SELF_FIRST - Перечисляет листья и родителей в итерации, причем родители идут первыми.

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)
                                          , RecursiveIteratorIterator::SELF_FIRST);
Другие вопросы по тегам