按呈现的数组的顺序计算数组的可能组合

时间:2009-11-23 20:05:48

标签: php arrays

这是一个php问题。

我有一个数组数组:

数组([1] =>数组([1] => 1 [2] => 2 [3] => 3)[2] =>数组([4] => 4 )[3] =>数组([7] => 7 [8] => 8 [9] => 9)[4] =>数组([36] => 36))

我需要按顺序制作所有可能的组合,但永远不会出现故障,并且永远不会错过以前的可能......这可能是一个不好的解释,但这就是我的意思:

1

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,因为它必须使用数组作为顺序,我不能跳过任何类似的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 = unserialize($ myarray);

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

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

这是它印刷的内容:

12310111213141516171819202122232425262728293031323334354567893637

1 个答案:

答案 0 :(得分:5)

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

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