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 相关文章推荐
初探PHP5
Oct 09 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
第五章 php数组操作
Dec 30 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
php缓冲输出实例分析
Jan 05 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
Oct 16 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后门URL的防范
2013/11/12 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
php实现json编码的方法
2015/07/30 PHP
php验证码生成代码
2015/11/11 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
详解Vue的mixin策略
2020/11/19 Vue.js
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
Python同时处理多个异常的方法
2020/07/28 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
祖国在我心中演讲稿300字
2014/05/04 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
辩护词格式
2015/05/22 职场文书
工作收入证明模板
2015/06/12 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
详解如何使用Nginx解决跨域问题
2022/05/06 Servers
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS