PHP多个数组合并和相加的区别

比如我们在项目中遇到需要将两个数组或者多个数组进行合并成一个数组的情况,其实只要掌握了其中的相关函数,以后对这类问题就可以得心应手了
注:数组有三种类型,索引数组;关联数组;多维数组。

PHP合并两个普通数组

$ar1=array('iphone','三星','小米');
$ar2=array('华为','荣耀','诺基亚');
print_r(array_merge($ar1,$ar2));

/* 我们通过array_merge函数将两个数组合并并且打印出来的结果
Array
(
    [0] => iphone
    [1] => 三星
    [2] => 小米
    [3] => 华为
    [4] => 荣耀
    [5] => 诺基亚
)
*/

PHP合并两个关联数组

$ar1=array('a'=>'iphone','b'=>'三星','c'=>'小米');
$ar2=array('a'=>'华为','d'=>'荣耀','e'=>'诺基亚');
print_r(array_merge($ar1,$ar2));

/* 合并两个关联数组的结果
Array
(
    [a] => 华为
    [b] => 三星
    [c] => 小米
    [d] => 荣耀
    [e] => 诺基亚
)
*/

这两个关联数组中有一个相同键名,并且合并后后一个同键名值覆盖了另外的值。也就是说如果多个数组中具有相同键名,那么用array_merge函数进行多个数组合并就会存在一个元素覆盖另一元素的情况。

array_merge合并函数的另一个用法,就是如果我们把一个带有键名为整数的数组,输入到这个函数中后,我们就会得到一个重新被索引了的新数组!

PHP两个普通数组相加

$ar1=array('iphone','三星','小米');
$ar2=array('华为','荣耀','诺基亚');
print_r($ar1+$ar2);
/* 两个普通数组相加的结果
Array
(
    [0] => iphone
    [1] => 三星
    [2] => 小米
)
*/

PHP两个关联数组相加

$ar1=array('a'=>'iphone','b'=>'三星','c'=>'小米');
$ar2=array('a'=>'华为','d'=>'荣耀','e'=>'诺基亚');
print_r($ar1+$ar2);
/* 两个关联数组相加的结果
Array
(
    [a] => iphone
    [b] => 三星
    [c] => 小米
    [d] => 荣耀
    [e] => 诺基亚
)
*/

结论:两个数组相加,不管是索引数组还是关联数组,若数组中存在相同键值的元素,则只保留第一个数组的元素。

发表评论

相关文章

猜你喜欢