在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别. 区别如下:
</>复制代码
1. 当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖).
2. 当下标为字符时,array+array仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值.
例子1:
代码:
</>复制代码
$arr1 = ["PHP", "apache"];
$arr2 = ["PHP", "MySQl", "HTML", "CSS"];
$mergeArr = array_merge($arr1, $arr2);
$plusArr = $arr1 + $arr2;
var_dump($mergeArr);
var_dump($plusArr);
结果:
$mergeArr:
</>复制代码
array (size=6)
0 => string "PHP" (length=3)
1 => string "apache" (length=5)
2 => string "PHP" (length=3)
3 => string "MySQl" (length=5)
4 => string "HTML" (length=4)
5 => string "CSS" (length=3)
$plusArr:
</>复制代码
array (size=4)
0 => string "PHP" (length=3)
1 => string "apache" (length=5)
2 => string "HTML" (length=4)
3 => string "CSS" (length=3)
例子2:
代码:
</>复制代码
$arr1 = ["PHP", "a"=>"MySQl"];
$arr2 = ["PHP", "MySQl", "a"=>"HTML", "CSS"];
$mergeArr = array_merge($arr1, $arr2);
$plusArr = $arr1 + $arr2;
var_dump($mergeArr);
var_dump($plusArr);
结果
$mergeArr:
</>复制代码
array (size=5)
0 => string "PHP" (length=3)
"a" => string "HTML" (length=4)
1 => string "PHP" (length=3)
2 => string "MySQl" (length=5)
3 => string "CSS" (length=3)
$plusArr:
</>复制代码
array (size=4)
0 => string "PHP" (length=3)
"a" => string "MySQl" (length=5)
1 => string "MySQl" (length=5)
2 => string "CSS" (length=3)
例子3:
代码:
</>复制代码
$arr1 = ["PHP", "a"=>"MySQl","6"=>"CSS"];
$arr2 = ["PHP", "MySQl", "a"=>"HTML", "CSS"];
$mergeArr = array_merge($arr1, $arr2);
$plusArr = $arr1 + $arr2;
var_dump($mergeArr);
var_dump($plusArr);
结果:
$mergeArr:
</>复制代码
array (size=6)
0 => string "PHP" (length=3)
"a" => string "HTML" (length=4)
1 => string "CSS" (length=3)
2 => string "PHP" (length=3)
3 => string "MySQl" (length=5)
4 => string "CSS" (length=3)
$plusArr:
</>复制代码
array (size=5)
0 => string "PHP" (length=3)
"a" => string "MySQl" (length=5)
6 => string "CSS" (length=3)
1 => string "MySQl" (length=5)
2 => string "CSS" (length=3)
相信通过上边三个例子大家已经非常清楚array_merge()函数和array+array数组相加的区别了吧。
转载请注明来源:https://segmentfault.com/a/11...
全阶段PHP教学视频下载地址:http://www.mobiletrain.org/vi...
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/22793.html
摘要:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。语法很简单,返回值是合并后的数组并不总是你所期望的返回值。如下会产生一条,并且的返回值会是。要注意的是参数为怎么处理。 导语 array_merge 这个函数很实用,也很常用,但是它有一些特性,不注意的话就会造成麻烦。前几天修改同事代码的时候,就出现了这种问题,所以查些资料写下来。 定义与语法 array array_...
摘要:原文来自原文概述使用的函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。有一个比较好而且更快的函数来替代使用函数来创建唯一的数组。 原文来自:http://www.hoohack.me/2016/01/11/faster-way-to-phps-array-unique-function/ 原文:Faster Alternative to PHP’s Array Un...
摘要:运算符的优先级,是明显高于,因此先执行再执行。这里会非常有趣的将转换成一个数字而且默认去掉了前面的也就是很显然上面的问题已经说过了数字和字符串类型不一致。 showImg(https://segmentfault.com/img/bVvhhO); 本文翻译自:https://www.toptal.com/php/interview-questions ,文章所罗列的问题虽然看似简单,但...
阅读 1910·2021-11-22 12:09
阅读 1528·2019-08-30 13:22
阅读 2165·2019-08-29 17:00
阅读 2701·2019-08-29 16:28
阅读 3017·2019-08-26 13:51
阅读 1250·2019-08-26 13:25
阅读 3327·2019-08-26 12:14
阅读 3081·2019-08-26 12:14