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 相关文章推荐
dede全站URL静态化改造[070414更正]
Apr 17 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
php生成静态页面的简单示例
Apr 17 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
yii2中的rules 自定义验证规则详解
Apr 19 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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 删除cookie和浏览器重定向
2009/03/16 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
用js重建星际争霸
2006/12/22 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
在Python的web框架中配置app的教程
2015/04/30 Python
python实现二叉查找树实例代码
2018/02/08 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
寒假思想汇报
2014/01/10 职场文书
置业顾问岗位职责
2014/03/02 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏