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_MySQL教程-第一天
Mar 18 PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
php 过滤危险html代码
Jun 29 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
详解php的魔术方法__get()和__set()使用介绍
Sep 19 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
PHP安全上传图片的方法
Mar 21 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
解决Laravel5.5下的toArray问题
Oct 15 PHP
PHP遍历数组的6种方式总结
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
php5.2时间相差8小时
2007/01/15 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
eval的两组性能测试数据
2012/08/17 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
详解django.contirb.auth-认证
2018/07/16 Python
在python中用url_for构造URL的方法
2019/07/25 Python
一行python实现树形结构的方法
2019/08/09 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
html5绘制时钟动画
2014/12/15 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
2014年党支部承诺书
2014/05/30 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
教师考核表个人总结
2015/02/12 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
入团介绍人意见范文
2015/06/04 职场文书
幼儿园教师辞职信
2019/06/21 职场文书