2013-05-27 43 views
0

比方說,我有幾個數組:如何乘以陣列(如SQL一樣)

$array1 = array('a','b','c'); 
$array2 = array('1','2','3'); 
$array3 = array('+','-'); 

因此,我想有這些陣列的所有可能的混合物的一個數組:

$result = array('a1+','a1-','a2+','a2-','b1+','b1-','b2+'... 

SQL在以下要求的情況下提供了這樣的操作:

SELECT * FROM `letters`,`digits`,`operations` 

何可我在PHP這樣做呢?

+0

使用Linq cross join [1]功能它會做你想做的事。 [1]:http://stackoverflow.com/questions/56547/how-do-you-perform-a-cross-join-with-linq-to-sql –

+1

這就是所謂的 '笛卡爾乘積' ,這裏有一個有用的答案:http://stackoverflow.com/a/6313346/1064767 – Sammitch

+0

「a3 +」和「a3-'會發生什麼? –

回答

0
$permute= array(); 
foreach($array1 as $x) 
    foreach($array2 as $y) 
     foreach ($array3 as $z) 
      $permute[]= $x.$y.$z; 
+0

謝謝!是否有可能將此函數轉換爲任何數量的arrayN-s?請幫助我構建這個反覆出現的功能... –