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 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
PHP书写格式详解(必看)
May 23 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
TP3.2框架分页相关实现方法分析
Jun 03 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
输出控制类
2006/10/09 PHP
PHP 日常开发小技巧
2009/09/23 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
json 定义
2008/06/10 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
python生成圆形图片的方法
2020/03/25 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
预备党员党支部意见
2015/06/02 职场文书
立春观后感
2015/06/18 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
SQLServer中exists和except用法介绍
2021/12/04 SQL Server