array_merge 和 + 的区别

区别:

  +:不管索引数组还是关联数组,运算遇到相同的key,是会保留原有的key对应的值不覆盖,而之后出现的会忽略掉

  array_merge:索引数组,不会覆盖,顺次相连,关联数组后面合并的数组和前面的数组有相同的key时后面的数组会覆盖前面的

<?php
$arr = array(1, 2, 3);
$arr1 = array(4, 5, 6);
var_dump(array_merge($arr, $arr1));
$arr += $arr1;
var_dump($arr);

$tmp = array('a'=>1, 'b'=>2, 'c'=>3);
$tmp1 = array('a'=>4, 'd'=>5, 'c'=>6);
var_dump(array_merge($tmp, $tmp1));
$tmp += $tmp1;
var_dump($tmp);
?>

结果

array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(4) {
["a"]=>
int(4)
["b"]=>
int(2)
["c"]=>
int(6)
["d"]=>
int(5)
}
array(4) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(5)
}

原文地址:https://www.cnblogs.com/persist/p/3289418.html