Php 多维数组加法

Php 多维数组加法,php,arrays,multidimensional-array,addition,array-map,Php,Arrays,Multidimensional Array,Addition,Array Map,假设我有两个数组: $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)); 我知道我需要以某种方式利用,但我不确定如何在多维情况下继续。您可以使用 $new = array(); foreach(array_map(n

假设我有两个数组:

$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));
我知道我需要以某种方式利用,但我不确定如何在多维情况下继续。

您可以使用

$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));

作用

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 ;
}

你能解释一下数组合并(数组(null),$var)?
array(null)
的重要性是什么?此时
$var
包含哪些内容?array\u merge只接受array
array(null)
是向数组中添加null值的一种方法。您可以使用
var\u dump($var)
查看var包含的内容
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 ;
}