У меня есть следующий многомерный массив:
$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
Как я могу заставить это включать все ключи?
Вам просто нужно правильно установить режим. От руководство:
RecursiveIteratorIterator :: SELF_FIRST — Листы уходят и родители в итерации с родителями, идущими первыми.
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)
, RecursiveIteratorIterator::SELF_FIRST);
Других решений пока нет …