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 相关文章推荐
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
php获取域名的google收录示例
Mar 24 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
微信支付开发发货通知实例
Jul 12 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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 移除数组重复元素的一点说明
2008/11/27 PHP
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jquery实用代码片段集合
2010/08/12 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
Python自动重试HTTP连接装饰器
2015/04/28 Python
python安装Scrapy图文教程
2017/08/14 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
新年晚会主持词
2014/03/24 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
购房意向书
2014/08/30 职场文书
中班教师个人总结
2015/02/05 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
win10更新失败无限重启解决方法
2022/04/19 数码科技