PHP合并数组+与array_merge的区别分析


Posted in PHP onAugust 01, 2010

主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意

1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)

2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值

需要注意的是数组键形式 '数字' 等价于 数字

$a = array('a','b'); 
$b = array('c', 'd'); 
$c = $a + $b; 
var_dump($a); 
var_dump(array_merge($a, $b)); $a = array(0 => 'a', 1 => 'b'); 
$b = array(0 => 'c', 1 => 'b'); 
$c = $a + $b; 
var_dump($c); 
var_dump(array_merge($a, $b)); 
$a = array('a', 'b'); 
$b = array('0' => 'c', 1 => 'b'); 
$c = $a + $b; 
var_dump($c); 
var_dump(array_merge($a, $b)); 
$a = array(0 => 'a', 1 => 'b'); 
$b = array('0' => 'c', '1' => 'b'); 
$c = $a + $b; 
var_dump($c); 
var_dump(array_merge($a, $b));

结果
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
2 => string 'c' (length=1) 
3 => string 'd' (length=1) array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
2 => string 'c' (length=1) 
3 => string 'b' (length=1) 
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
2 => string 'c' (length=1) 
3 => string 'b' (length=1) 
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
array 
0 => string 'a' (length=1) 
1 => string 'b' (length=1) 
2 => string 'c' (length=1) 
3 => string 'b' (length=1)
PHP 相关文章推荐
BBS(php & mysql)完整版(七)
Oct 09 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
php使用curl存储cookie的示例
Mar 31 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
PHP自定义函数收代码
Aug 01 #PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 #PHP
PHP5中使用PDO连接数据库的方法
Aug 01 #PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 #PHP
PHP Stream_*系列函数
Aug 01 #PHP
php下目前为目最全的CURL中文说明
Aug 01 #PHP
php feof用来识别文件末尾字符的方法
Aug 01 #PHP
You might like
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
innerText 使用示例
2014/01/23 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python中常见的异常总结
2018/02/20 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python如何实时获取tcpdump输出
2020/09/16 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
override和overload的区别
2016/03/09 面试题
乡镇个人对照检查材料
2014/08/22 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
升职自我推荐信范文
2015/03/25 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书