php合并数组array_merge函数运算符加号与的区别


Posted in PHP onOctober 31, 2008

array_merge在参考手册中的说明如下:
array_merge() 将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

两个的区别是:

1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(注意:不是覆盖而是保留最先出现的那个值)。例子:

$array1 = array(1=>'0'); 

$array2 = array(1=> "data"); 
  $result1 = $array2 + $array1;/*结果为$array2的值*/ 
  print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/ 
print_r($result4);

输出结果为: 
Array 
( 
[1] => data 
) 
Array 
( 
[1] => 0 
) 
Array 
( 
[0] => data 
[1] => 0 
) 
Array 
( 
[0] => 0 
[1] => data 
)

2.当相同数组键名为字符时,“+”运算符与键名为数字时一样,但array_merge()此时会覆盖掉前面相同键名的值。

例子:

$array1 = array('asd'=>'0'); 
$array2 = array('asd' => "data"); 
  $result1 = $array2 + $array1;/*结果为$array2的值*/ 
  print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array1*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array2*/ 
print_r($result4);

输出结果为:
Array 
( 
[asd] => data 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => data 
)
PHP 相关文章推荐
php adodb连接带密码access数据库实例,测试成功
May 14 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 #PHP
smarty的保留变量问题
Oct 23 #PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 #PHP
攻克CakePHP系列二 表单数据显示
Oct 22 #PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 #PHP
攻克CakePHP系列一 连接MySQL数据库
Oct 22 #PHP
PHP 反射机制实现动态代理的代码
Oct 22 #PHP
You might like
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
Python 中的with关键字使用详解
2016/09/11 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
Python实现Dijkstra算法
2018/10/17 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
python把一个字符串切开的实例方法
2020/09/27 Python
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
检举信的写法
2019/04/10 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
Ajax实现三级联动效果
2021/10/05 Javascript