多维数组除了 [英] Multidimensional array addition

查看:169
本文介绍了多维数组除了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有两个数组:

$v_4 = array(array(1,2,3),array(4,5,6));
$v_5 = array(array(7,8,9),array(10,11,12));

我应该如何构建一个新增功能跨越这些阵列添加,从而获得:

How should I construct an addition function to add across these arrays so as to get:

$new_array = array(array(8,10,12),array(14,16,18));

我知道我需要利用 array_map 不知怎么的,但我不能确定如何在多维的情况下进行。

I know I need to utilise array_map somehow, but I am unsure how to proceed in the multidimensional case.

推荐答案

您可以使用

$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 ..你可以使用该功能稍加修改

The Example above is only limited to 2 arrays .. if you have more like 10 .. you can use this function with a little modification

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

这篇关于多维数组除了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆