Я много искал и старался заставить его работать, но мой мозг не может справиться с этим. Я звоню сюда, чтобы узнать, сможет ли кто-нибудь помочь мне с этой рекурсивной функцией.
Пример массива:
$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
Ожидаемый результат - это все возможности чисел.
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