【发布时间】:2013-01-23 23:56:33
【问题描述】:
我有两个数组:
$array1 = array (a => '501', b => '1');
$array2 = array (a => '501', b => '2');
合并后的数组应如下所示:
$merged_array = array (a => '501', b => '3');
我尝试了很多建议,其中之一是:
$sums = array();
foreach (array_keys($array1 + $array2) as $key) {
$sums[$key] = (isset($array[$key]) ? $array[$key] : 0) + (isset($array2[$key]) ? $array2[$key] : 0);
}
但这会导致:
$merged_array = array (a => '1002', b => '3');
我应该怎么做?非常感谢任何建议
编辑:在阅读了一些 cmets 之后,我意识到我应该更清楚。见下文
4 个数组,注意 'a' 中的重复项:
$array1 = array (a => '501', b => '1');
$array2 = array (a => '501', b => '2');
$array3 = array (a => '505', b => '1');
$array4 = array (a => '509', b => '1');
4 个合并的数组和序列化应该变成 类似
a:2:{s:1:"a";i:501;s:1:"b";i:3; s:1:"a";i:505;s:1:"b";i:1; s:1:"a";i:509;s:1:"b";i:1;}
所以:2x a => '501' 变为 1x a => '501' 并且它的 'b' 键变为 '3'(求和)
和:1x a=> '505' 和 b => '1'
和:1x a=> '509' 和 b => '1'
【问题讨论】:
-
数组总是有两个键吗?两个键总是相同的吗?钥匙固定了吗?
-
键 'a' 可以不同,例如可以是 501 - 502 - 503。键“b”也可以不同。 'a' 可能永远不会重复,而应该合并 'a'。
-
如果值不同,a键在合并数组中应该是什么?
-
感谢您的回复,您让我意识到我应该以不同的方式提出我的问题,请参阅更新后的问题