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