Вывести все значения многомерного массива
Есть массив, в нем нам не известны ключи и уровень вложенностей (он может быть разным всегда).
Нужно получить все значения которые есть в этом массиве. То есть чтобы скрипт прошелся по всем ключам и уровням вложенности. Ключи могут быть как цифровые так и текстовые.
Буду благодарен за помощь!
Ответы (2 шт):
Автор решения: iKey
→ Ссылка
Нашел решение:
function array_values_recursive($ary) {
$lst = array();
foreach( array_keys($ary) as $k ) {
$v = $ary[$k];
if (is_scalar($v)) {
$lst[] = $v;
}elseif (is_array($v)) {
$lst = array_merge($lst, array_values_recursive($v) );
}
}
return $lst;
}
Источник: php.net
Автор решения: teran
→ Ссылка
вывести все значения массива произвольной вложенности можно, используя array_walk_recursive()
array_walk_recursive($arr, function($v){
echo "$v\n";
});
Если нужно их сложить в одномерный массив, то можно использовать эту же самую функцию
$result = [];
array_walk_recursive($arr, function($v) use (&$result){
$result[] = $v;
});