日期:2014-05-17 浏览次数:20571 次
$d = func_get_args();//读取传入的参数到数组(php4)
if( count($d) < 2 ) return current($d);
$n = array_product( array_map('count', $d) ); //array_product 计算数组值的乘积(php5),array_map 返回经回调函数处理的数组(php4)
array_walk( $d, function(&$v, $k, $n) {//用回调函数处理数组元素(php3)闭包写法(php5.3)
$v = array_chunk( call_user_func_array('array_merge', array_pad([$v], $n/count($v), $v)), 1);
}, $n);//array_chunk 切割数组(php4)
//call_user_func_array 调用指定函数并传递参数数组(php4)对执行可变参数数量的函数很有用
foreach($d as $i=>$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();