PHP将两个多维数组的元素求和

路易·沃尔玛兰斯

这是我在StackOverflow上的第一篇文章。

我正在寻找最好的方法来获取两个数组,每个数组具有不同数量的数据项,将它们合并,但是将其中一个键具有相同值的项加在一起(使用PHP)。

输入数组:

$array1 = array ( 
    0 => array ( 'result_date' => '2020-07-20', 'total_for_day' => '75', ), 
    1 => array ( 'result_date' => '2020-07-21', 'total_for_day' => '17', ), 
    2 => array ( 'result_date' => '2020-07-22', 'total_for_day' => '0', ), 
    3 => array ( 'result_date' => '2020-07-23', 'total_for_day' => '6', ), 
    4 => array ( 'result_date' => '2020-07-24', 'total_for_day' => '1', )
);
$array2 = array ( 
    0 => array ( 'result_date' => '2020-07-01', 'total_for_day' => '6264', ), 
    1 => array ( 'result_date' => '2020-07-02', 'total_for_day' => '7008', ), 
    2 => array ( 'result_date' => '2020-07-20', 'total_for_day' => '1968', ), 
    3 => array ( 'result_date' => '2020-07-21', 'total_for_day' => '7776', ), 
);

所需的输出:

array ( 
    0 => array ( 'result_date' => '2020-07-01', 'total_for_day' => '6264', ), 
    1 => array ( 'result_date' => '2020-07-02', 'total_for_day' => '7008', ), 
    2 => array ( 'result_date' => '2020-07-20', 'total_for_day' => '2043', ), 
    3 => array ( 'result_date' => '2020-07-21', 'total_for_day' => '7793', ), 
    4 => array ( 'result_date' => '2020-07-22', 'total_for_day' => '0', ), 
    5 => array ( 'result_date' => '2020-07-23', 'total_for_day' => '6', ), 
    6 => array ( 'result_date' => '2020-07-24', 'total_for_day' => '1', )
);

因此,基本上只是将两个数组合并为一个更大的数组,但是将“ result_date”匹配的“ total_for_day”加起来。请注意,在期望的输出中,它也由'result_date'ASC进行排序。

提前致谢 :-)

亚历克斯·巴克

我只是采用简单的方法并使用中间数组映射:

$array1 = array(...);
$array2 = array(...);
$arrayN = array(...);

$merged = array();
foreach (array_merge($array1, $array2, $arrayN) as $record) {
    $date = $record["result_date"];
    if (!isset($merged[$date])) {
        $merged[$date] = 0;
    }
    $merged[$date] += $record["total_for_day"];
}

$result = array();
foreach ($merged as $date => $days) {
    $result[] = array(
        "result_date" => $date, 
        "total_for_day" => "{$days}" // Remove the quotes if you don't want a string.
    );
}

usort($result, function ($a, $b) {
    return $a["result_date"] <=> $b["result_date"];
});

var_dump($result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对PHP中两个关联多维数组的值求和

来自分类Dev

比较PHP中的两个多维数组以求和

来自分类Dev

对PHP中两个关联多维数组的值求和

来自分类Dev

PHP比较两个多维数组

来自分类Dev

将两个关联数组转换为一个多维数组PHP

来自分类Dev

基于匹配其他两个值(php)的多维关联数组中的一个值求和

来自分类Dev

将数组对象按两个元素和求和值分组(JavaScript)

来自分类Dev

在PHP中使用相同的键获取两个或多个多维数组的元素的总和

来自分类Dev

对数组中的两个连续元素求和

来自分类Dev

Java:如何求和两个长度不同的数组的元素

来自分类Dev

如何对数组的两个元素求和?

来自分类Dev

PHP加入数组的两个元素

来自分类Dev

如何在PHP中加入两个多维数组

来自分类Dev

如何获得PHP中两个多维数组的差异?

来自分类Dev

PHP中两个多维数组的交集

来自分类Dev

PHP从mysql两个表生成多维数组

来自分类Dev

添加两个多维PHP关联数组

来自分类Dev

如何在PHP中加入两个多维数组

来自分类Dev

PHP-查找比较两个多维数组的值

来自分类Dev

PHP合并两个关联的多维数组

来自分类Dev

PHP从mysql两个表生成多维数组

来自分类Dev

PHP组数组由两个键求和

来自分类Dev

如何将两个一维数组转换为一个多维数组 - PHP

来自分类Dev

javascript对两个类元素求和

来自分类Dev

Foreach中的两个多维数组

来自分类Dev

Foreach中的两个多维数组

来自分类Dev

合并两个多维数组

来自分类Dev

从具有子数组的多维数组中删除最后两个元素

来自分类Dev

PHP将两个元素添加到关联数组