php中用加号与用array_merge合并数组的区别深入分析


Posted in PHP onJune 03, 2013

我们首先给出两个数组

    <?php  
     $r = array(1,2,3,4,5,6);  
     $e = array(7,8,9,10);  
    ?> 

下面我们用array_merge和加号来何必这两数组
    <?php  
    print_r($r+e); // 输出<span style="font-family: Simsun;font-size:16px; ">Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) </span>  
    print "<br />";  
    print_r(array_merge($r,$e)); // 输出<span style="font-family: Simsun;font-size:16px; ">Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )</span>  
    ?> 

从这里可以看出,用array_merge合并数组一个数组中的值附加在前一个数组的后面。返回作为结果的数组如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 然而用加号来合并数组如果键名相同,则取最先出现的数组值,后面的就直接忽略掉
下面我们来改变下前面给出的数组
    <?php  
     $r = array('r'=>1,2,3,4,5,6);  
     $e = array(<span style="background-color: rgb(245, 250, 255); ">'r'=></span>7,8,9,10);  
    ?> 

    <?php  
    print_r($r+e); // 输出Array ( [r] => 1 [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 )  
    print "<br />";  
    print_r(array_merge($r,$e)); // 输出Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )  
    ?> 

从这里可以看出,用array_merge合并数组一个数组中的值附加在前一个数组的后面。如果非数字键名相同,则后面数组的值会覆盖前面数组的值。 然而用加号来合并数组如果键名相同,则取最先出现的数组值,后面的就直接忽略掉
PHP 相关文章推荐
PHP新手上路(十三)
Oct 09 PHP
php生成excel文件的简单方法
Feb 08 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
php格式化时间戳
Dec 17 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 PHP
PHP在线生成二维码代码(google api)
Jun 03 #PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 #PHP
深入php-fpm的两种进程管理模式详解
Jun 03 #PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 #PHP
基于PHP异步执行的常用方式详解
Jun 03 #PHP
php生成二维码的几种方式整理及使用实例
Jun 03 #PHP
深入PHP异步执行的详解
Jun 03 #PHP
You might like
PHP版 汉字转码的实现详解
2013/06/09 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
range 标准化之获取
2011/08/28 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python 字符串操作方法大全
2014/03/11 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python实现flappy bird小游戏
2018/12/24 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Python排序函数的使用方法详解
2020/12/11 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
Haggar官网:美国男装品牌
2020/02/16 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
骨干教师培训感言
2014/01/16 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
Win11快速关闭所有广告推荐
2022/04/19 数码科技