2013-02-26 153 views
1

好的,這裏我有一個多維數組。它由3個數組組成,每個數組有3個數字。我想生成並列出這些數組中的每個可能的數字組合。因此,例如,「147」(1是來自第一陣列,4來自第二陣列,7是來自第三陣列),「247,347,157,257,357,167,267,367等等。 。「如何獲得多維數組的所有可能組合

重要的是第一個數字必須來自第一個數組,第二個數字來自第二個數組,第三個來自第三個數組。

我試圖通過嵌套的foreach循環遍歷這些數組,但我無法完全弄清楚它是否讓我頭暈目眩。希望這是有道理的,任何幫助將不勝感激。

+0

http://stackoverflow.com/questions/4549794/how-to-find-every-possible-combination-of-arrays-in-php可能DUP – Crisp 2013-02-26 23:44:04

回答

2
<?php 
$numbers = array(
    array("1", "2", "3"), 
    array("4", "5", "6"), 
    array("7", "8", "9"), 
); 

for ($i=0;$i<3;$i++) { 
    for ($j=0;$j<3;$j++) { 
    for ($k=0;$k<3;$k++) { 
     echo $numbers[0][$i]+" "+$numbers[1][$j]+" "+$numbers[2][$k]+"\n"; 
    } 
    } 
} 
?> 

我沒有在PHP程序之前,所以代碼可能會讓你的眼睛流血。儘管如此,代碼的工作和演示的想法。

4
$numbers = array(
    array("1", "2", "3"), 
    array("4", "5", "6"), 
    array("7", "8", "9"), 
); 

$f_nb = $numbers['0']; 
$s_nb = $numbers['1']; 
$t_nb = $numbers['2']; 

$final_array = array(); 

for($a = 0; $a<sizeof($f_nb); $a++) 
{ 
    for($b = 0; $b<sizeof($s_nb); $b++) 
    { 
     for($c = 0; $c<sizeof($t_nb); $c++) 
     { 
      $final_array[] = $f_nb["$a"] . $s_nb["$b"] . $t_nb["$c"]; 
     } 
    } 
} 

print_r($final_array);