20,359
社区成员
发帖
与我相关
我的任务
分享
//统计组合
function zuhe($arr){
if(count($arr) >= 2){
$tmparr = array();
$arr1 = array_shift($arr);
$arr2 = array_shift($arr);
foreach($arr1 as $k1 => $v1){
foreach($arr2 as $k2 => $v2){
$tmparr[] = $v1.$v2;
}
}
array_unshift($arr, $tmparr);
$arr = zuhe($arr);
}else{
$arr = array_shift($arr);
}
return $arr;
}
$arr = array(
array(1,2,3,4),
array('a','b','c')/*,
array(8,9,0),
array('x','y','z')*/
);
print_r(zuhe($arr));
/*
Array
(
[0] => 1a
[1] => 1b
[2] => 1c
[3] => 2a
[4] => 2b
[5] => 2c
[6] => 3a
[7] => 3b
[8] => 3c
[9] => 4a
[10] => 4b
[11] => 4c
)*/
function foo($d) {
$r = array_pop($d);
while($d) {
$t = array();
$s = array_pop($d);
if(! is_array($s)) $s = array($s);
foreach($s as $x) {
foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y));
}
$r = $t;
}
return $r;
}
$ar = array(
array(1,2,3,4),
array('a','b','c'),
);
print_r(foo($ar));
Array
(
[0] => Array
(
[0] => 1
[1] => a
)
[1] => Array
(
[0] => 1
[1] => b
)
[2] => Array
(
[0] => 1
[1] => c
)
[3] => Array
(
[0] => 2
[1] => a
)
[4] => Array
(
[0] => 2
[1] => b
)
[5] => Array
(
[0] => 2
[1] => c
)
[6] => Array
(
[0] => 3
[1] => a
)
[7] => Array
(
[0] => 3
[1] => b
)
[8] => Array
(
[0] => 3
[1] => c
)
[9] => Array
(
[0] => 4
[1] => a
)
[10] => Array
(
[0] => 4
[1] => b
)
[11] => Array
(
[0] => 4
[1] => c
)
)