11 22 33
44 55 66
77 88 99要得到11 44 77
11 44 88
11 44 99
11 55 77
11 55 88
11 55 99
...
22 44 77
22 44 88
...
33 44 77
..如此类推的函数...感冒了,脑子动不了了...感谢.
44 55 66
77 88 99要得到11 44 77
11 44 88
11 44 99
11 55 77
11 55 88
11 55 99
...
22 44 77
22 44 88
...
33 44 77
..如此类推的函数...感冒了,脑子动不了了...感谢.
$b = array(44,55,66);
$c = array(77,88,99);
$str = '';
echo "<pre>";
foreach($a as $v1) {
foreach($b as $v2) {
foreach($c as $v3) $str .= "{$v1} {$v2} {$v3}\n";
}
}
echo $str;
$a = array(11, 22, 33);
$b = array(44, 55, 66);
$c = array(77, 88, 99);
function Descartes($a, $b) {
$r = array();
if(is_array($a)) foreach($a as $v) $r = array_merge($r, Descartes($v, $b));
elseif(is_array($b)) foreach($b as $v) $r = array_merge($r, Descartes($a, $v));
else $r[] = "$a $b";
return $r;
}
print_r( Descartes( Descartes($a, $b), $c ) );
Array
(
[0] => 11 44 77
[1] => 11 44 88
[2] => 11 44 99
[3] => 11 55 77
[4] => 11 55 88
[5] => 11 55 99
[6] => 11 66 77
[7] => 11 66 88
[8] => 11 66 99
[9] => 22 44 77
[10] => 22 44 88
[11] => 22 44 99
[12] => 22 55 77
[13] => 22 55 88
[14] => 22 55 99
[15] => 22 66 77
[16] => 22 66 88
[17] => 22 66 99
[18] => 33 44 77
[19] => 33 44 88
[20] => 33 44 99
[21] => 33 55 77
[22] => 33 55 88
[23] => 33 55 99
[24] => 33 66 77
[25] => 33 66 88
[26] => 33 66 99
)
$arr1=array('11','22','33');
$arr2=array('44','55','66');
$arr3=array('77','88','99');
function get($arr1,$arr2,$arr3){
foreach($arr1 as $val){
foreach($arr2 as $val2){
foreach($arr3 as $val3){
$newarr[]=array($val,$val2,$val3);
}
}
}
foreach($newarr as $v){
$arr[]=join(' ',$v);
}
return $arr;
}
print_r(get($arr1,$arr2,$arr3)); Array
(
[0] => 11 44 77
[1] => 11 44 88
[2] => 11 44 99
[3] => 11 55 77
[4] => 11 55 88
[5] => 11 55 99
[6] => 11 66 77
[7] => 11 66 88
[8] => 11 66 99
[9] => 22 44 77
[10] => 22 44 88
[11] => 22 44 99
[12] => 22 55 77
[13] => 22 55 88
[14] => 22 55 99
[15] => 22 66 77
[16] => 22 66 88
[17] => 22 66 99
[18] => 33 44 77
[19] => 33 44 88
[20] => 33 44 99
[21] => 33 55 77
[22] => 33 55 88
[23] => 33 55 99
[24] => 33 66 77
[25] => 33 66 88
[26] => 33 66 99
)