php array_merge函数使用需要注意的一个问题


Posted in PHP onMarch 30, 2015

使用php语言的array_merge函数时,以为相同的键名会覆盖,但是请看如下代码:

$a1 = array(1=>'abc', 3=>10);

$a2 = array(1=>'efg', 3=>20);

print_r(array_merge($a1, $a2));

会输出什么?我们预想中的是:

Array

(

    [1] => efg

    [3] => 20

)

实际上输出的是:

Array

(

    [0] => abc

    [1] => 10

    [2] => efg

    [3] => 20

)

不但没有被覆盖,而且数字键被重新连续索引了。

起初以为这个是bug,后来翻了php手册 http://php.net/manual/zh/function.array-merge.php

「如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。」

PHP 相关文章推荐
用PHP实现文件上传二法
Oct 09 PHP
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
怎样搭建PHP开发环境
Jul 28 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 #PHP
PHP实现动态柱状图改进版
Mar 30 #PHP
PHP动态柱状图实现方法
Mar 30 #PHP
php实现的一个简单json rpc框架实例
Mar 30 #PHP
php实现读取内存顺序号
Mar 29 #PHP
php实现插入排序
Mar 29 #PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 #PHP
You might like
《心理测量者3》剧场版动画预告
2020/03/02 日漫
CI框架常用方法小结
2016/05/17 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
jQuery功能函数详解
2015/02/01 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
Vue DevTools调试工具的使用
2017/12/05 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
法律专业实习鉴定
2013/12/22 职场文书
家长会演讲稿
2014/04/26 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
公司总经理任命书
2014/06/05 职场文书
教师个人自我评价
2015/03/04 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
写给老师的保证书
2015/05/09 职场文书
龙猫观后感
2015/06/09 职场文书
员工旷工检讨书
2015/08/15 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js