主要区别在与两个或多个数组在合并时,出现相同的键名时处理方式不一样
一、当键名为数字时,array_merge不会覆盖原来的值,+会抛弃后面的值
<?php
/**
* Created by PhpStorm.
* User: lzc
* Date: 2017/3/18
* Time: 10:02
*/
$a = [1,2,3];
$b = [4,5,6];
var_dump($a+$b);
var_dump(array_merge($a,$b));
?>
结果为:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
}
二、当键名为字符串时,+会舍弃掉后面键相同的元素,array_merge键相同的后面元素覆盖前面元素
<?php
/**
* Created by PhpStorm.
* User: lzc
* Date: 2017/3/18
* Time: 10:02
*/
$a = ['a'=>1,'b'=>2,'c'=>3];
$b = ['a'=>4,'d'=>5];
var_dump($a+$b);
var_dump(array_merge($a,$b));
?>
结果为:
array(4) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(5)
}
array(4) {
["a"]=>
int(4)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(5)
}