#前提:必须都是数组类型,如果其中一个是null,会产生bug
#索引数组
$arr1 = [1 => 'one', 3 => 'three'];
$arr2 = [1 => 'new one', 6 => 'six'];
$result1 = array_merge($arr1, $arr2);
$result2 = $arr1 + $arr2;
print_r($result1);
/*
Array
(
[0] => one
[1] => three
[2] => new one
[3] => six
)
*/
print_r($result2);
/*
Array
(
[1] => one
[3] => three
[6] => six
)
*/
#1、array_merge就是简单的数组追加,即使索引相同也不会出现覆盖的情况。这也注定了新数组的索引会被重写。变为0,1,2,3…
#2、+的方式在遇到索引相同时,保留前者抛弃后者
$arr3 = ['name' => '张三', 'age' => 21];
$arr4 = ['name' => '李四', 'age' => 22];
$result3 = array_merge($arr3, $arr4);
$result4 = $arr3 + $arr4;
print_r($result3);
Array
(
[name] => 李四
[age] => 22
)
print_r($result4);
Array
(
[name] => 张三
[age] => 21
)
#1、array_merge键名相同,后者覆盖前者
#2、+依旧是保留前者抛弃后者
#实际操作中,array_merge用得多