合并具有相同键的数组:克服 array_merge 的限制
在软件开发中,合并具有相同键的数组可能是一项常见任务。然而,array_merge 函数经常无法合并具有相同键的所有元素,从而导致数据丢失。
考虑以下示例:
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge($A, $B); // Result [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>
如图所示,'c 的原始值'=>合并后3丢失。为了解决这个问题,需要另一种方法。
解决方案:array_merge_recursive
解决方案在于使用 array_merge_recursive 函数。与 array_merge 不同,array_merge_recursive 递归地合并输入数组的键和值,保留所有数据。
以下代码演示了这种方法:
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge_recursive($A, $B); // Result [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>
如您所见,与'c' 被保留。然而,由于合并后的数组中只能有一个“c”键,因此结果成为数组中的数组。
以上是如何合并具有相同键的数组并保留所有数据?的详细内容。更多信息请关注PHP中文网其他相关文章!