- 此问题在此处已有答案**:
Best method for sum two arrays [closed](4个答案)
How to merge two arrays by summing the merged values [duplicate](3个答案)
How to sum all column values in multi-dimensional array?(20个答案)
add the values of two different associative arrays in php . display unique key-values too in the result array [duplicate](5个答案)
Sum 2 or more associative arrays values based on keys [duplicate](4个答案)
昨天关门了。
我正在寻找一种方法来添加两个数组的内容在一起的方式。例如:
$first_array = array("key_1" => 2, "key_2" => 3, "key_3" => 4);
$second_array = array("key_1" => 5, "key_2" => 6, "key_3" => 7);
$third_array = add_arrays($first_array, $second_array);
$third_array的预期结果应为"键_1"=〉7,"键_2"=〉9,"键_3"=〉11。
PHP中是否存在这样的函数?(我创建了"add_arrays()"以用于上面的示例。)如果PHP中已经存在这样的函数,我将尽量避免重新发明轮子。
2条答案
按热度按时间jqjz2hbq1#
您可以在PHP Manual, Array Functions section中使用
array_walk()
当我传递一个对第一个数组项
&$a1_item
的引用时,这将用总和更新first_array。结果
或者,您可以简单地将第一个数组复制到新数组,然后使用该数组
结果
4bbkushb2#
这里有两种可能的方法,可以对任意数量的数组进行求和。请阅读行内注解,以了解所做的工作。
对任何现有关键字求和
此方法使用两个
foreach
循环,将在任何数组中找到的任何键的值相加:结果:
总结:这是对任意数量数组的匹配键的值求和,不要求每个数组都有相同的键(第三个数组没有 key_2,有 key_7,其他数组没有)。
按第一个数组的键求和
此方法使用
array_sum()
和array_column()
,并通过迭代第一个数组中的键来对列求和:结果:
您会注意到第三个示例数组中的 key_7 被省略了,因为它与第一个数组中作为提取列基础的键不匹配,您可以很容易地修改该函数以传入您选择的键并迭代它们。
您还可以使用这种方法代替第一个示例中的“double foreach”来对任何现有键求和,但是首先必须从每个数组中提取键并将它们合并在一起;这将使这里在一个循环中对列求和的简单性失效。