一、array1+array2
可以把他叫做数组的“补充合并”:
不管是数字下标还是字符串下标,当前面数组中下标元素不存在时,把后面数组元素补充进来;
当前面数组下标已存在,不需要补充了,抛弃掉后面数组元素,最终结果使用前面的数组元素;
如:
$array1 = [0, 1 => 1, 'two' => 2];
$array2 = [0, 1 => '一', 'two' => '二', 'three' => '三'];
print_r($array1 + $array2);
//打印结果为:
//Array ( [0] => 0 [1] => 1 [two] => 2 [three] => 三 )
二、array_merge(array1, array2)
有两种情况,数字下标和字符串下标处理不一样
字符串下标:覆盖合并,当下标相同时,后面数组元素覆盖前面数组元素;
数字下标:追加合并,不会覆盖,会把两个数字的元素简单的追加在一起,并重置下标;
$array1 = [0, 1 => 1, 'two' => 2];
$array2 = [0, 1 => '一', 'two' => '二', 'three' => '三'];
print_r(array_merge($array1, $array2));
//输出:Array ( [0] => 0 [1] => 1 [two] => 二 [2] => 0 [3] => 一 [three] => 三 )
//1,字符串下标“two”元素被array2覆盖了
//2,数字下标的array1的元素“0”, “1 => 1”和array2的元素“0”,“1 => '一'”都在,并重置了下标