PHP函数对比 array_merge()与加号合并数组的区别
首先准备两个数组,从数组索引类型分别讨论。
数组索引为字符串索引时:
$a = array('a' => 1, 'b' => 2, 'c' => 3);
$b = array('b' => 5, 'c' => 6, 'd' => 7);
var_dump(array_merge($a,$b));
// print
array (size=4)
'a' => int 1
'b' => int 5
'c' => int 6
'd' => int 7
字符串索引时,array_merge()后面的相同key会取代前面的值
-----------------------------------------------
var_dump($a+$b);
//print
array (size=4)
'a' => int 1
'b' => int 2
'c' => int 3
'd' => int 7
字符串索引时,+ 后面的数组在key已存在前面数组的key中,会被忽略掉
数组索引为数字索引时:
$a = array(1 => 1, 2 => 2, 3 => 3);
$b = array(0 => 5, 1 => 6, 2 => 7);
var_dump(array_merge($a, $b));
//print
array (size=8)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 2
5 => int 3
6 => int 5
7 => int 7
数字索引时,array_merge(),直接后面的数组追加到前面数组的后面,合并后的数组重新排序
--------------------------------------------------
var_dump($a + $b);
//print
array (size=4)
1 => int 1
2 => int 2
3 => int 3
0 => int 5
数字索引时,+号已经保持与字符串数组一样的秉性,后面数组的key是前面数组已存在key时,会被忽略。
array_merge()函数合并非数组:
$end = array("a" => 'bar');
$start = "foo";
var_dump(array_merge($end,(array)$start)); //强制转array,默认数字索引
//print
array (size=2)
'a' => string 'bar' (length=3)
0 => string 'foo' (length=3)
PHP函数对比 array_merge()与加号合并数组的区别的更多相关文章
- PHP中通过加号合并数组
通常,我们合并多个数组用的是array_merge()函数,其实,PHP手册中关于数组操作符的介绍给了我们更简单的方法,那就是"+"号,看看下面的例子就明白了(详细了解) 代码: ...
- php 通过array_merge()和array+array合并数组的区别和效率比较
众所周知合并两个数组可以使用array_merge(),这是php提供的一个函数.另外还可以通过 array 的方式来合并数组,这两种直接有什么区别,哪一个的效率更高呢? array_merge() ...
- PHP合并数组array_merge函数运算符加号与的区别
两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数 ...
- PHP中使用函数array_merge()合并数组
如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了 PHP中合并数组分成两种情况 1.如果这两个数组中有相同的字符串键名: <?php header('Con ...
- php中array_merge合并数组详解
如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数 ...
- PHP的array_merge()合并数组
,4];print_r(array_merge($arr1,$arr2));返回结果:Array( [a] => 3 [b] => 2 [0] => 4)1注释:当 ...
- PHP合并数组+与array_merge的区别
http://www.phpernote.com/php-string/351.html PHP中合并两个数组可以使用+或者array_merge,但这两个还是有区别的 主要区别是当两个或者多个数 ...
- PHP合并数组+与array_merge的区别分析
主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面 ...
- PHP合并数组的三种方法的分析与比较
常用的合并数组的方法有三种:array_merge().array_merge_recursive().+,下面一个一个介绍 array_merge() 此函数合并一个或多个数组,当输入的数组中有相同 ...
随机推荐
- position属性值4缺一带你了解相对还是绝对抑或是固定定位
阿基米德说“给我一个支点,我能翘起整个地球”,在HTML页面中,给你一个坐标,可以把任何一个元素定位目标点,这就是定位!CSS有三种基本的定位机制:相对定位.绝对定位.固定定位,决定定位的positi ...
- ES相关知识
ElkStack介绍 对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我 ...
- pycharm工具连接mysql数据库失败
在使用pycharm开发工具连接mysql数据库时提示错误,信息如下: Server returns invalid timezone. Go to 'Advanced' tab and set 's ...
- 20200117 .net 001
第一部分:面向对象 封装 继承(里氏转换) 多态第二部分:值类型.引用类型.字符串操作第三部分:集合文件操作第四部分:正则表达式第五部分:XML操作第六部分:委托.事件第七部分:反射. 1.变量的命名 ...
- JavaScript对象模型概念
1.对象的概念 JavaScript只有函数对象才有类的概念,因此创建一个对象,必须使用函数对象.(ES6中可以直接声明一个class,实质上也是一个函数对象). 函数对象的内部有[[Construc ...
- 【01】HTML_day01_03-HTML常用标签
typora-copy-images-to: media 第01阶段.前端基础.HTML常用标签 学习目标 理解: 相对路径三种形式 应用 排版标签 文本格式化标签 图像标签 链接 相对路径,绝对路径 ...
- 汇桔网被曝拖欠12月份工资至今,强制买产品,CEO称去年交易额超400亿
三言财经消息,近日有汇桔网员工爆料,汇桔网拖欠12月工资至今,通知延迟到4月才发放. 此外爆料还指出,"各种手法逼迫大家离开,员工要么继续忍受,要么主动离职,要么停薪留职.都不同意只能仲裁. ...
- 爬取豆瓣网图书TOP250的信息
爬取豆瓣网图书TOP250的信息,需要爬取的信息包括:书名.书本的链接.作者.出版社和出版时间.书本的价格.评分和评价,并把爬取到的数据存储到本地文件中. 参考网址:https://book.doub ...
- sqlserver数据库重启
停止:net stop mssqlserver 重启:net start mssqlserver
- 通过sd文件发布的FeatureAccess服务不能查看到图层
发布服务有两种方法, 1. 用ArcMap --Share As - service --publish a service 此方法可以直接将地图数据发布到ArcGIS Server 的地图服务中, ...