例如:$arr=Array(
[0] => 32,
[1] => Array(
[0] => 24
[1] => 34
[2] => 43
[3] => 44
),
[2] => Array(
[0] => 55
[1] => 58
[2] => 72
),
[3] => 36)
我想将其分解成 $arr1=array([0] =>32,[1] =>24,[2]=>55,[3]=>36);
$arr2=array([0] =>32,[1] =>24,[2]=>58,[3]=>36);
$arr3=array([0] =>32,[1] =>24,[2]=>72,[3]=>36);
$arr4=array([0] =>32,[1] =>34,[2]=>55,[3]=>36);其实就是求笛卡尔积;今天郁闷了半天 ;没有好的解决方案;真难过;哎
正确结贴。。
[0] => 32,
[1] => Array(
[0] => 24
[1] => 34
[2] => 43
[3] => 44
),
[2] => Array(
[0] => 55
[1] => 58
[2] => 72
),
[3] => 36)
我想将其分解成 $arr1=array([0] =>32,[1] =>24,[2]=>55,[3]=>36);
$arr2=array([0] =>32,[1] =>24,[2]=>58,[3]=>36);
$arr3=array([0] =>32,[1] =>24,[2]=>72,[3]=>36);
$arr4=array([0] =>32,[1] =>34,[2]=>55,[3]=>36);其实就是求笛卡尔积;今天郁闷了半天 ;没有好的解决方案;真难过;哎
正确结贴。。
排列组合啦,每组选一个单元出来,组合成数列
第一组和第四组只有一个单元,所以数列头尾只能是32和36,中间两组就逐个列举http://topic.csdn.net/u/20091011/12/bd610ef1-9923-4d27-b5ca-dcaa62e6bcc3.html
跟这个是一样的
用唠叨那个程式就行了
只是把二维数组分成四个一维数组
已经结贴了 你就把分给 在我帖子回复的人吧
http://topic.csdn.net/u/20110531/17/dd79391a-ed60-4050-b741-409cf1cbe6d2.html
<?php
$arr=Array(
0 => 32,
1 => Array(
0 => 24,
1=> 34,
2 => 43,
3 => 44,
),
2 => Array(
0 => 55,
1 => 58,
2 => 72,
),
3 => 36);
function arrs($arr){
for ($i=0;$i<count($arr[0]);$i++){
is_array($arr[0]) ? $s1=$arr[0][$ii] : $s1=$arr[0];
for($ii=0;$ii<count($arr[1]);$ii++){
$s2=$s1;
is_array($arr[1]) ? $s2=$s2.",".$arr[1][$ii] : $s2=$s2.",".$arr[1];
for($iii=0;$iii<count($arr[2]);$iii++){
$s3=$s2;
is_array($arr[2]) ? $s3=$s3.",".$arr[2][$iii] : $s3=$s3.",".$arr[2];
for($iiii=0;$iiii<count($arr[3]);$iiii++){
$s4=$s3;
is_array($arr[3]) ? $s4=$s4.",".$arr[3][$iiii] : $s4=$s4.",".$arr[3];
$arrs[]=$s4;
$s4='';
}
$s3='';
}
$s2='';
}
$s1='';
}
return $arrs;
}
print_r(arrs($arr));
?> 水平有限,写完后才发现如果做成递归应该会更好,这样你有数组中有多少元素都不怕了有空把这个改成递归