如何使 array_merge() 覆盖两个数组中具有不同值但具有相同键索引的两个键?
例如,合并:
[0] => '随便'
与
[0] => 'whatever', [1] => 'a', [2] => 'b'
应该产生
[0] => 'whatever', [1] => 'a', [2] => 'b'
基本上我希望 array_merge 的行为方式与数组具有字符串键时的行为方式相同......
最佳答案
使用 +
运算符。
比较 array_merge
到 +
运算符:
<?php
$a1 = array(0=>"whatever",);
$a2 = array(0=>"whatever",1=>"a",2=>"b");
print_r(array_merge($a1,$a2));
print_r($a1+$a2);
?>
输出:
Array
(
[0] => whatever
[1] => whatever
[2] => a
[3] => b
)
Array
(
[0] => whatever
[1] => a
[2] => b
)
如果您的关联数组的数字键乱序,+
运算符 仍然 有效:
<?php
$a1 = array(0=>"whatever",);
$a2 = array(1=>"a",0=>"whatever",2=>"b");
print_r(array_merge($a1,$a2));
print_r($a1+$a2);
?>
输出:
Array
(
[0] => whatever
[1] => a
[2] => whatever
[3] => b
)
Array
(
[0] => whatever
[1] => a
[2] => b
)
注意 array_merge
在 this 的情况下会创建一个新键。不可取...
关于带有数字键的 PHP array_merge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929642/