-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46619
- shell命令
-
- 文章:(42)篇
- 阅读:154525
- Git教程
-
- 文章:(36)篇
- 阅读:235149
- leetCode刷题
-
- 文章:(76)篇
- 阅读:132290
-
PHP中数组合并加号"+"和array_merge函数的区别2018-10-01 16:05 阅读(10479) 评论(0)
在php中,我们可以通过使用加号"+"和array_merge函数,来合并数组,那么两者区别又是什么呢?
一、使用户array_merge函数合并数组
array_merge 是将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。格式如下:
array array_merge ( array $array1 [, array $... ] )
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。合并后,键值不变。
如果数组包含相同的数字键名,后面的值将不会覆盖原来的值,而是附加到后面,且键名会从0开始,以连续方式重新索引。合并后,键值可能会变。
a、字符串键名
相同的字符串键名案例:
$arr1 = ['a' => 'a1', 'b' => 'b1']; $arr2 = ['a' => 'a2', 'b' => 'b2', 'c' => 'c2']; print_r(array_merge($arr1, $arr2));
输出:
Array ( [a] => a2 [b] => b2 [c] => c2 )
相同的数字键名案例:
$arr1 = ['1' => 'a1', '2' => 'b1']; $arr2 = ['2' => 'a2', '3' => 'b2', '4' => 'c2']; print_r(array_merge($arr1, $arr2));
输出:
Array ( [0] => a1 [1] => b1 [2] => a2 [3] => b2 [4] => c2 )
二、使用加号"+"合并数组
使用“+”运算符合并数组,合并后,键值不变。
如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。
案例如下:
$arr1 = ['1g2' => 'a1', '2' => 'b1']; $arr2 = ['2' => 'a2', '1g2' => 'b2', '4' => 'c2']; print_r($arr1+$arr2);
输出:
Array ( [1g2] => a1 [2] => b1 [4] => c2 )
三、总结
当键值为字符串的时候,使用“+”进行合并,键值相同的时候,则忽略后面;使用“array_merge”进行合并,键值相同的时候,后面会覆盖前面的;
当键值为数字的时候,使用“+”进行合并,键值相同的时候,则忽略后面;使用“array_merge”进行合并,,后面的值将不会覆盖原来的值,而是附加到后面,且键名会从0开始,以连续方式重新索引。
1、若要保留键值不变
当所有键值都为字符串的时候,使用加号"+"和array_merge函数都可以,只不过保留哪个的问题。
当键值类型不确定的时候,我们最好使用加号"+"