Php 对数组中的数组求和并返回一个新数组

Php 对数组中的数组求和并返回一个新数组,php,arrays,sum,Php,Arrays,Sum,我有两个如下所示的阵列: $r1[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc); $r2[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc); Array 1: [1] = [1400] [20] ["Standard timelønn"] [2] = [NULL] [20] ["Kveldstillegg"] Array 2: [

我有两个如下所示的阵列:

$r1[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc);
$r2[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc);
Array 1:
[1] = [1400] [20] ["Standard timelønn"]
[2] = [NULL] [20] ["Kveldstillegg"]

Array 2:
[1] = [NULL] [20] ["Standard timelønn"]
[2] = [1500] [20] ["Kveldstillegg"]
假设每个数组的值如下所示:

$r1[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc);
$r2[$db_rate_type] = Array($db_rate_in, $db_rate_out, $db_rate_desc);
Array 1:
[1] = [1400] [20] ["Standard timelønn"]
[2] = [NULL] [20] ["Kveldstillegg"]

Array 2:
[1] = [NULL] [20] ["Standard timelønn"]
[2] = [1500] [20] ["Kveldstillegg"]
如何对数组的值求和,但在开始时保留计数ID

我尝试了以下代码:

$c = array_map(function () {
    return array_sum(func_get_args());
}, $a, $b);
但它只对添加到另一个数组中的一个数组计数,而不对数组中的数组计数。我希望返回的内容如下:

Array returned:
[1] = [1400] [40] ["Standard timelønn"]
[2] = [1500] [40] ["Kveldstillegg"]
那么,我如何才能做到这一点,但要让它尽可能有效

数据库获取等的完整代码可以在5.6的示例中找到(需要参数解包)

我希望这对你有所帮助

<?php
//your needs
/* 
$d = array(
    0 => array(1400, 40, 1500, 30),
    1 => array(1500, 40, null, 30)
);
*/

//a
$a = array(
    0 => array(1400,20,null,15),
    1 => array(null, 20, null, 15)
);

//b
$b = array(
    0 => array(null,20,1500,15),
    1 => array(1500, 20, null, 15)
);

//c
$c = array_map(function () {
    $args = func_get_args();
    $sumArray = array();
    foreach ($args as $k=>$subArray) {
        foreach ($subArray as $id=>$value) {
            @$sumArray[$id]+=$value;
        }
    }
    return $sumArray;
}, $a, $b);

//result
print_r($c);
?>


您使用什么版本的PHP?根据具体情况,可能会有不同的解决方案。今后,请不要编辑您的问题,以免使现有答案无效。这对用户来说是不公平的,因为他们花了很多时间来写你宣布无效的答案。下一次,只需问一个新问题。Se更新了一个问题,另外,我希望数组键相同,从1开始,然后继续到2等等。再说一遍:您的PHP版本是什么?运行版本5.3时的错误是:
Parse Error:syntax Error,unexpected'第1067行的/home/conn/subdomener/projects/functions.php中的['是一个非常旧的版本,请更新。否则,您应该将所有的
[*]
更改为
数组(*)
。返回
可捕获的致命错误:参数2传递给了{closure}()必须是一个数组,给定null,在第1071行的/home/connecti/subdomener/projects/functions.php中调用,在第1058行的/home/connecti/subdomener/projects/functions.php中定义