array_walk_recursive()
доставляет желаемый результат из массива неопределенной глубины в одну строку, потому что он посещает только «листовые узлы» - фактически, вам не нужно беспокоиться о проверке, является ли элемент или нетмассив.
array_walk_recursive()
не возвращает массив, он возвращает true
| false
в зависимости от того, был ли сбой.
&$flat
- переменнаякоторый "передан по ссылке".Это означает, что $flat
может выступать в качестве транспортного средства для передачи данных из области действия функции в область действия функции.По мере прохождения элементов каждое новое значение помещается в $flat
с использованием синтаксиса в квадратных скобках.
Это именно то, что эта функция делает лучше всего - используйте ее.
Код: ( Демо )
$liste = [[1, 2, 3], 5, [['x', 'y', 'z'], true]];
array_walk_recursive($liste, function($v) use (&$flat){ $flat[] = $v; });
var_export($flat);
Вывод:
array (
0 => 1,
1 => 2,
2 => 3,
3 => 5,
4 => 'x',
5 => 'y',
6 => 'z',
7 => true,
)