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);
→ Ссылка