удалить все листья из многомерного массива

Как удалить все листья из многомерного массива?

Этот кусок кода дает мне все листья, Я ищу напротив результат:

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));

foreach($iterator as $key => $value) {
$result[] = array($key, $value);
}

Есть что-то встроенный? Или любой другой элегантный решение?

0

Решение

ParentIterator могу помочь тебе.

<?php
$array = [
'a',
'b'=>[
'c'=>[],
'd'
],
'e',
'f'=>[
'g'=>[
'h',
'i'=>[
'j'=>[],
'k'
]
]
]
];

$rii = new RecursiveIteratorIterator(
new ParentIterator(
new RecursiveArrayIterator($array)
),
RecursiveIteratorIterator::CHILD_FIRST
);

$result = [];

foreach($rii as $key => $dummy) {
echo $key, "\r\n";
}

печать

c
b
j
i
g
f
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector