2015-02-19 7 views
0

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

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

$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

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

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

Редактировать: Logic?

434 
12 
    1 

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

ответ

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

Выглядит очень неплохо, спасибо, я не могу сказать, как я счастлив увидеть рабочий пример. Теперь мне нужно усердно учиться. –

Смежные вопросы