PHP многомерный массив рекурсивный

0

Я много искал и старался заставить его работать, но мой мозг не может справиться с этим. Я звоню сюда, чтобы узнать, сможет ли кто-нибудь помочь мне с этой рекурсивной функцией.

Пример массива:

$array = array(
            array(4),
            array(3,1),
            array(4,2,1)
        );

Ожидаемые выходные данные:

434
432
431
424
422
421

Мое начало:

function recursive($array){
    foreach($array as $key => $value){
        if(is_array($value)){
            recursive($value);
        } else{
            echo $value;
        }
    }
}

Выход: 431421

Я не понимаю, как вернуть всю длину несколько раз.

Надеюсь на помощь! Благодарю.

Изменение: логика?

434
 12
  1

Вот как он получает цифры с самого начала.
Это означает:
сверху, 434 - одна комбинация
вторая строка вычитает число над ним. поэтому 3 -1 = 2 (424)
Третья строка - это вычитание результата для первого вычитания. как и последняя строка (4-2) -1 = 1 (сначала 422. то 421, но также 432 и 431
Ожидаемый результат - это все возможности чисел.

Теги:
arrays
multidimensional-array
recursion

1 ответ

0
Лучший ответ
function walkme($array, $c) {
    if (!count($array)) {
            echo "$c\n";
            return;
    }
    $last=array_pop($array);
    foreach ($last as $l) {
            walkme($array, $l.$c);
    }
}

$array = array(
        array(4),
        array(3,2),
        array(4,2,1)
    );

walkme($array, "");

результат:

434
424
432
422
431
421
  • 0
    Выглядит очень хороший человек, большое спасибо! Я не могу сказать, как я рад видеть рабочий пример. Теперь мне нужно усердно учиться.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню