假设我有两个数组:
$v_4 = array(array(1,2,3),array(4,5,6));
$v_5 = array(array(7,8,9),array(10,11,12));
我应该如何构建一个添加函数来添加这些数组以获得:
$new_array = array(array(8,10,12),array(14,16,18));
我知道我需要以某种方式利用array_map
,但我不确定如何处理多维案例。
答案 0 :(得分:1)
您可以使用
$new = array();
foreach(array_map(null, $v_4, $v_5) as $var) {
$data = call_user_func_array("array_map", array_merge(array(null) , $var));
$new[] = array_map("array_sum", $data);
}
print_r($new);
上面的示例仅限于2个数组..如果你有更多像10
..你可以使用这个功能稍作修改
print_r(array_sum_colums($v_4,$v_5,$v_6));
或者
print_r(array_sum_colums(array($v_4,$v_5,$v_6)));
功能
function array_sum_colums() {
$args = count(func_get_args()) == 1 ? func_get_arg(0) : func_get_args();
$arg = call_user_func_array("array_map", array_merge(array(null),$args));
$new = array();
foreach($arg as $var) {
$data = call_user_func_array("array_map", array_merge(array(null), $var));
$new[] = array_map("array_sum", $data);
}
return $new ;
}