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 - Html Transfer Code
Oct 09 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
PHP 微信支付类 demo
Nov 30 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
php加密解密字符串示例
Oct 13 PHP
完美的php分页类
Oct 24 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
laravel框架中间件简单使用方法示例
Jan 25 PHP
thinkphp5 路由分发原理
Mar 18 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
jquery实现下载图片功能
2019/07/18 jQuery
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
python sys模块sys.path使用方法示例
2013/12/04 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
NumPy排序的实现
2020/01/21 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
django 多数据库及分库实现方式
2020/04/01 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
python 5个顶级异步框架推荐
2020/09/09 Python
介绍java中初始化块的使用
2012/09/11 面试题
十一个高级MySql面试题
2014/10/06 面试题
迷你西餐厅创业计划书范文
2013/12/31 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
军训口号
2014/06/13 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
使用CSS实现音波加载效果
2023/05/07 HTML / CSS