PHP合并数组+号和array_merge的区别


Posted in PHP onJune 25, 2015

PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别:

1.相加会证数组中的自然index不被重置
2.相加方法中,被加的数组内的值不会被覆盖
3.merge函数中的自然index会被重置
4.merge函数,无所谓被merge和merge关系,越后面的array参数,其值,会覆盖较前面的array参数相同键的值

例子:

数组1:

$arr1 = array(
  10 => 'valueof10',
  11 => 'valueof11',
  'key1' => 'dataofkey1',
  'key2' => 'dataofkey2',
  'array' => array(
    'key1' => 1,
    'key2' => 'abc',
    'key3' => array(
      1, 2, 'name' => 'peter'
    ),
  ),
);

数组2:

$arr2 = array(
  10 => 'newvalueof10',
  11 => 'newvalueof11',
  'key1' => 'newdataofkey1',
  'key3' => 'newdataofkey3',
  'array' => array(
    'key1' => 2,
    'key2' => 'defg',
    'key3' => array(
      1, 2, 'name' => 'jonathan', 'gender' => 'male'
    ),
  ),
);

结果比较:

array (size=6)
 10 => string 'valueof10' (length=9)
 11 => string 'valueof11' (length=9)
 'key1' => string 'dataofkey1' (length=10)
 'key2' => string 'dataofkey2' (length=10)
 'array' => 
  array (size=3)
   'key1' => int 1
   'key2' => string 'abc' (length=3)
   'key3' => 
    array (size=3)
     0 => int 1
     1 => int 2
     'name' => string 'peter' (length=5)
 'key3' => string 'newdataofkey3' (length=13)
 
array (size=8)
 0 => string 'valueof10' (length=9)
 1 => string 'valueof11' (length=9)
 'key1' => string 'newdataofkey1' (length=13)
 'key2' => string 'dataofkey2' (length=10)
 'array' => 
  array (size=3)
   'key1' => int 2
   'key2' => string 'defg' (length=4)
   'key3' => 
    array (size=4)
     0 => int 1
     1 => int 2
     'name' => string 'jonathan' (length=8)
     'gender' => string 'male' (length=4)
 2 => string 'newvalueof10' (length=12)
 3 => string 'newvalueof11' (length=12)
 'key3' => string 'newdataofkey3' (length=13)
PHP 相关文章推荐
php中的时间显示
Jan 18 PHP
php db类库进行数据库操作
Mar 19 PHP
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php数组添加与删除单元的常用函数实例分析
Feb 16 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
laravel批量生成假数据的方法
Oct 09 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 #PHP
php计算多维数组中所有值总和的方法
Jun 24 #PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 #PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 #PHP
php异常处理方法实例汇总
Jun 24 #PHP
php数组索引与键值操作技巧实例分析
Jun 24 #PHP
PHP实现在线阅读PDF文件的方法
Jun 23 #PHP
You might like
50个PHP程序性能优化的方法
2014/06/02 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
python入门教程之识别验证码
2017/03/04 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
pymysql的简单封装代码实例
2020/01/08 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python编程的核心知识点总结
2021/02/08 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
交通安全演讲稿
2014/01/07 职场文书
考试不及格检讨书
2014/01/09 职场文书
股东协议书范本
2014/04/14 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
个人剖析材料范文
2014/09/30 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL