【发布时间】:2014-12-13 04:18:57
【问题描述】:
如何合并两个数组,并在键匹配时增加值? 两个数组可能包含另一个数组中不存在的键,并且它们都可能比另一个具有更多或更少的键。
所以我不能只取一个数组,然后循环遍历该数组并与另一个数组进行比较,因为有时“其他”数组可能具有更多值。这会不时切换。
数组合并似乎也不起作用,因为它会覆盖旧值。
我需要从两个数组中返回所有唯一键,但是每当一个键匹配时,我只需将两个值相加即可。
Array_a:
["BMW-B2"]=>int(1)
["BMW-N-115 "]=>int(5)
["BMW-N-143"]=>int(3)
["BMW-N-163"]=>int(10)
["BMW-N-184"]=>int(4)
Array_b
["CR220036"]=>int(3)
["BMW-N-163"]=>int(9)
["CR220822"]=>int(7)
Array_merged
["BMW-B2"]=>int(1)
["CR220036"]=>int(3)
["CR220822"]=>int(7)
["BMW-N-115 "]=>int(5)
["BMW-N-143"]=>int(3)
["BMW-N-163"]=>int(19) // <-- this has increast by 9
["BMW-N-184"]=>int(4)
顺序并不重要。
【问题讨论】:
-
写出最简单的输入、输出和你想要的结果的例子,或者 - 甚至更好 - 一个单元测试,你会让包括你自己在内的每个人的生活更轻松
-
欧凯。我添加了两个数组的示例,以及我需要的输出