php数组相加与使用array_merge的区别

发布时间:2020/06/08 作者:天马行空 阅读(665)

日常开发中经常会碰到数组合并,常用两种方式:直接将两个数组相加或者使用array_merge函数。

那么这两种方式有什么区别呢?


当键为数字时:

<?php
$a = [0=>'aaa',1=>'bbb',2=>'ccc'];
$b = [0=>'aaa1',1=>'bbb1',2=>'ccc1'];
echo '<pre>';
print_r(array_merge($a,$b));
print_r($a+$b);
echo '</pre>';
exit;
?>

返回结果:

图片.png

当键为字符时:

<?php
$a = ['a'=>'aaa','b'=>'bbb','c'=>'ccc'];
$b = ['a'=>'aaa1','b'=>'bbb1','c'=>'ccc1'];
echo '<pre>';
print_r(array_merge($a,$b));
print_r($a+$b);
echo '</pre>';
exit;
?>

返回结果:

图片.png


由此,我们可以得出结果

两个数组相加的方式:

    只要键名冲突就保留最先出现的。

使用array_merge方式:

    键是字符键名冲突时,后面的数组覆盖前面的;

    键是数字键名冲突时,不会覆盖,索引递增,值保留。

关键字php