假设有三个数组(实际不确定多少个数组):
$arr1 = array(1, 2, 3, 4);
$arr2 = array(10, 20, 30, 40);
$arr3 = array(100, 200, 300, 400);
要实现的结果:
array(
array(1,10,100),
array(1,10,200),
array(1,10,300),
array(1,10,400),
array(1,20,100),
array(1,20,200),
array(1,20,300),
array(1,20,400),
array(1,30,100),
...
);
不想用递归,但是也可以实现看看
排列组合 分享到:
------解决方案--------------------
array() 可简化为 [] 是 php5.4 才有的吗?我怎么记得 php5.3 就是的呢?
简单注释一下:
$d = func_get_args();//读取传入的参数到数组(php4)
if( count($d) $t) {
if($i == 0) {
$r = $t;
}else {
array_multisort(array_map(function($v) { return $v[0]; }, $r), $r);
$r = array_map('array_merge', $r, $t);
}
}
------解决方案--------------------
function my_arr_combine()
{
$args = func_get_args();
$final = array_shift($args);
while($f = array_shift($args))
{
$r = array();