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 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
我的论坛源代码(十)
Oct 09 PHP
php循环输出数据库内容的代码
May 24 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
php实现通用的信用卡验证类
Mar 24 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
PHP中数组转换为SimpleXML教程
Jan 27 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合并数组+与array_merge的区别分析
2010/08/01 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
jQuery获取URL请求参数的方法
2015/07/18 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
Python定义函数实现累计求和操作
2020/05/03 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
新东网科技Java笔试题
2012/07/13 面试题
程序员岗位职责
2013/11/11 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
财产保全担保书
2015/01/20 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL