PHP: почему переменная в рекурсии становится undefined
прошу объяснить почему $resArray оказывается undefined при исполнении рекурсии
$test = [1,2,[[3,[4,5],6],7,8],9,0];
function reduceArrDimensions($array) {
isset($resArray) ?: $resArray = [];
if (is_array($array)) {
foreach ($array as $nested) {
$returnArr = reduceArrDimensions($nested);
}
} else {
$resArray[] = $array;
}
}
reduceArrDimensions($test);
Ответы (1 шт):
Автор решения: Dmitrii Sedov
→ Ссылка
Вот пример с исправленной ошибкой и с использованием array_reduce
$test = [1,2,[[3,[4,5],6],7,8],9,0];
function reduceArrDimensions($carry, $item) {
if (is_array($item)) {
$carry = array_reduce($item, 'reduceArrDimensions', $carry);
}
else $carry[] = $item;
return $carry;
}
$newArr = array_reduce($test, 'reduceArrDimensions', []);
var_dump($newArr);