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获得文件扩展名三法
Nov 25 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
php Session存储到Redis的方法
Nov 04 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
PHP序列化操作方法分析
Sep 28 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 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
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
微信支付开发交易通知实例
2016/07/12 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
kafka-python批量发送数据的实例
2018/12/27 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
pytorch中index_select()的用法详解
2021/01/06 Python
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
委托收款证明
2015/06/23 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
环保建议书作文300字
2015/09/14 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
Java基础——Map集合
2022/04/01 Java/Android