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函数之子字符串替换 str_replace
Mar 23 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
php使用GeoIP库实例
Jun 27 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
php面向对象值单例模式
May 03 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
YII框架常用技巧总结
Apr 27 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 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+APACHE实现用户论证的方法
2006/10/09 PHP
php计算一个文件大小的方法
2015/03/30 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
求职简历自荐信
2014/06/18 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP