array_merge 和 + 操作数组时,有什么区别?

PHP 基础面试题
0
0
分享
推荐答案
展示答案

两者都可以将两个数组进行合并,但是array_merge表示合并,+运算符表示附加。两者区别如下 对于相同键名合并的问题, 使用array_merge时,后面的值会覆盖前一个值,如果数组包含数字键名,后面的值不会覆盖原来的值,而是附加到后面。 使用+运算符,第一个数组的键名会被保留。存在相同键名时,第一个数组中的同键名的元素会被保留,第二个数组中的元素会被忽略。 代码如下 <?php //相同键名合并 $arr1 = ['a' => 'b']; $arr2 = ['a' => 'c']; //后者覆盖前者,结果为 ['a'=>'c'] print_r(array_merge($arr1, $arr2)); //前者保留,后者舍弃 ['a'=>'b'] print_r($arr1 + $arr2); //数字键值重新编号 $arr1 = [1 => 'a', 3 => 'c']; $arr2 = [2 => 'b', 4 => 'd']; //重新编号,结果为 [0=>'a',1=>'c',2=>'b',3=>'d'] print_r(array_merge($arr1, $arr2)); //保留原键名,不会重新编号,结果为 [1=>'a',3=>'c',2=>'b',4=>'d'] print_r($arr1 + $arr2);

答案已隐藏