【问题标题】:Summing arrays in PHP?在 PHP 中求和数组?
【发布时间】:2013-11-27 23:03:44
【问题描述】:

想象以下两个数组:

$array1 = array('dogs' => 3, 'cats' => 5);
$array2 = array('dogs' => 2, 'cats' => 7);

是否有原生 php 5.5 功能,或任何最佳解决方案来获得以下结果?

$result = array('dogs' => 5, 'cats' => 12);

【问题讨论】:

  • $array1['dogs'] + $array2['dogs']

标签: php arrays sum


【解决方案1】:

答案是肯定的。但是你必须为此编写一个自定义函数。 Jonah,对此给出了一个很好的答案。

Here is a solution for numeric arrays.

对于关联数组:

$sum = array_combine(array_keys($array1), array_map('bcadd', $array1, $array2));

bcadd 让您避免创建自己的加法函数)

【讨论】:

  • 我使用了参考,并转发到实际链接。
【解决方案2】:

我认为你最好为多维和编写自己的解决方案:

<?php

function sumEach($original, $array) {
    foreach($array as $key => $value) {
        if(!array_key_exists($key, $original))
            $original[$key] = $value;
        else
            $original[$key] += $value;
    }
    return $original;
}

$totals = array();

$totals = sumEach($totals, $array1);
$totals = sumEach($totals, $array2);

?>

那么您从$totals 的输出将如下所示:

Array(
    'dogs' => 5,
    'cats' => 12
);

这是一个演示:https://eval.in/73948

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多