我正在尋找寫一個函數來創建數組列表的所有排列(列表是動態的)。現在我找到2篇文章,http://dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/和Finding cartesian product with PHP associative arrays。但我不想將它們存儲爲多個數組,我想將每個數組添加到每個可能性中,以便稍後使用它們。遞歸PHP樹(排列組合)
事實上,我想每個數組乘以另一個。
例如:
$array = array(
array(
1,
2
),
array(
'A',
'B',
'C'),
array(
'I',
'II')
);
在這種形式:
Array
(
[0] => Array
(
[0] => 1
[1] => Array
(
[0] => Array
(
[0] => A
[1] => Array
(
[0] => I
[1] => II
)
)
[1] => Array
(
[0] => B
[1] => Array
(
[0] => I
[1] => II
)
)
[2] => Array
(
[0] => C
[1] => Array
(
[0] => I
[1] => II
)
)
)
)
[1] => Array
(
[0] => 2
[1] => Array
(
[0] => Array
(
[0] => A
[1] => Array
(
[0] => I
[1] => II
)
)
[1] => Array
(
[0] => B
[1] => Array
(
[0] => I
[1] => II
)
)
[2] => Array
(
[0] => C
[1] => Array
(
[0] => I
[1] => II
)
)
)
)
)
我覺得這個大例如由我的問題清楚。對於這種類型的數組,我創建了一個函數: foreach($ array [1] as $ value){ $ return1 [] = array($ value,$ array [2]); }
foreach ($array[0] as $value) {
$return[] = array($value, $return1);
}
print_r($return);
現在我想創建一個遞歸函數裏面這個功能(所以它變成動力),但我卡住了。我想將大量的數組傳遞給函數,然後迭代。
function createTree($array, $loops=3){
$b = $array[$loops-2];
foreach ($b as $v) {
$return[] = array($v, createTree($return, $loops-1));
}
print_r($return);
}
也許還有其他的解決方案來乘數組?但是,這是不是遞歸函數是難不倒我,但是使它遞歸...
感謝您的幫助
我使用的無遞歸函數是: '的foreach($陣列[1 ]作爲$ value){ \t \t $ return1 [] = array($ value,$ array [2]); \t} \t的foreach($數組[0]爲$值){ \t \t $返回[] =陣列($值,$ RETURN1); \t} \t print_r($ return);' – user3278918 2015-02-23 21:38:20