Ответы пользователя по тегу Рекурсия
  • Как добавить новый массив в самый конец многомерного массива произвольной глубины на php?

    eldario666
    @eldario666
    1. Если ты захотел изменить элемент в массиве, то нужно указать ссылку на него &$val
    2. Когда ты запускаешь рекурсию и тебе нужны данные, которые она возвращает, то их надо записывать $val = deep($val);
    3. Нельзя в foreach использовать array_merge

    Вот, что получилось:
    $test_mass = [
        'tk98op' => [
            'p5ld2se' => [],
            '38hjp9'  => [
                '2we8t2' => [],
                '1142ln' => [],
            ],
            '669yo36' => [
                '6318u7' => [
                    '22rv86' => [],
                    '13we42' => [],
                ],
                'jk66d3' => [],
            ],
        ],
    ];
    
    function deep($mass)
    {
        foreach ($mass as $key => &$val) {
            $val = (\is_array($val) && \count($val) === 0)
                ?
                [1, 4, 217, 432]
                : deep($val);
        }
        unset($val);
    
        return $mass;
    }
    Ответ написан
    Комментировать