2009-11-23 90 views
1

这是一个php问题。按阵列顺序计算数组的可能组合

我有数组的数组:

阵列([1] =>数组([1] => 1 [2] => 2 [3] => 3)[2] =>数组( 4] =>阵列([36] => 36))

[4] => 4)[3] =>阵列([7] => 7 [8] => 8 [9]

我需要以所有可能的组合,但从来没有出故障,并且从来不缺少以前的possible..that容易坏的解释,但是这就是我的意思是:

1 - 4

1 - 4 - 7

1 - 4 - 8

1 - 4 - 9

1 - 4 - 7 - 36

1 - 4 - 8 - 36

1 - 4 - 9 - 36

我从不希望得到1 - 9 - 4,因为它必须使用数组作为顺序,我不能跳过任何像s o 1 - 9 - 36

任何帮助都会被认真的赞赏!

我尝试下面的解决方案(较大的更现实的阵列上):

$myarray = 'a:4:{i:1;a:29:{i:1;s:1:"1";i:2;s:1:"2";i:3;s:1:"3";i:10;s:2:"10";i:11;s:2:"11";i:12;s:2:"12";i:13;s:2:"13";i:14;s:2:"14";i:15;s:2:"15";i:16;s:2:"16";i:17;s:2:"17";i:18;s:2:"18";i:19;s:2:"19";i:20;s:2:"20";i:21;s:2:"21";i:22;s:2:"22";i:23;s:2:"23";i:24;s:2:"24";i:25;s:2:"25";i:26;s:2:"26";i:27;s:2:"27";i:28;s:2:"28";i:29;s:2:"29";i:30;s:2:"30";i:31;s:2:"31";i:32;s:2:"32";i:33;s:2:"33";i:34;s:2:"34";i:35;s:2:"35";}i:2;a:3:{i:4;s:1:"4";i:5;s:1:"5";i:6;s:1:"6";}i:3;a:3:{i:7;s:1:"7";i:8;s:1:"8";i:9;s:1:"9";}i:4;a:2:{i:36;s:2:"36";i:37;s:2:"37";}}'; 

$ yourarray =反序列化($ myarray中);

$ array_iter = new RecursiveArrayIterator($ yourarray); $ iter_iter = new RecursiveIteratorIterator($ array_iter);

foreach($ iter_iter as $ iwishitwashomework) { echo $ iwishitwashomework; }`

这是它的印刷:

+1

这是一个家庭作业的问题吗? – monksy 2009-11-23 20:08:22

+0

不,这是一个哦,废话我该如何做这个快速的问题 – jpstrikesback 2009-11-23 20:50:31

+0

嘿,你找到答案?寻找相同的:) – RolandasR 2011-08-22 17:08:02

回答

5
$array_iter = new RecursiveArrayIterator($yourarray); 
$iter_iter = new RecursiveIteratorIterator($array_iter); 

foreach($iter_iter as $myhomework) 
{ 
echo $myhomework; 
} 
+3

作为$ myhomework ...这是最重要的部分。大声笑! +1 – 2009-11-23 20:18:01

+0

这是印刷的内容: 12310111213141516171819202122232425262728293031323334354567893637 – jpstrikesback 2009-11-23 20:43:08