1、当键值是字符串时,array_merge后面会覆盖前面的。+如果前面键值出现了,后面的不要。
$a = [
'a' => 2,
'b' => 3
];
$b = [
'a' => 3,
'c' => 4
];
var_dump(array_merge($a, $b));
echo "<br>";
var_dump($a+ $b);
输出:
array(3) { ["a"]=> int(3) ["b"]=> int(3) ["c"]=> int(4) }
array(3) { ["a"]=> int(2) ["b"]=> int(3) ["c"]=> int(4) }
2、当键值是数字时,array_merge会追加,+保留前面的。
$a = [
1 => 2,
2 => 3
];
$b = [
2 => 5,
3 => 4
];
var_dump(array_merge($a, $b));
echo "<br>";
var_dump($a+ $b);
输出:
array(4) { [0]=> int(2) [1]=> int(3) [2]=> int(5) [3]=> int(4) }
array(3) { [1]=> int(2) [2]=> int(3) [3]=> int(4) }