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 相关文章推荐
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
php获取当前页面完整URL地址
Dec 30 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 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
安装APACHE
2007/01/15 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
javascript 事件绑定问题
2011/01/01 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
建筑实习自我鉴定
2013/10/18 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
社区消防工作实施方案
2014/03/21 职场文书
品牌服务方案
2014/06/03 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2015年化验员工作总结
2015/04/10 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书