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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
php 字符串函数收集
Mar 29 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
利用curl 多线程 模拟 并发的详解
Jun 14 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
php技巧小结【推荐】
Jan 19 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
PHP的微信支付接口使用方法讲解
Mar 08 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 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
php split汉字
2009/06/05 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
C#笔试题集合
2013/06/21 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
应届大学生自荐信
2013/12/05 职场文书
应届毕业生求职信范文
2013/12/18 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
周年庆典答谢词
2015/01/20 职场文书
保送生自荐信范文
2015/03/26 职场文书
班主任培训研修日志
2015/11/13 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python