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面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
php常用文件操作函数汇总
Nov 22 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
PHP生成plist数据的方法
2015/06/16 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
vue如何判断dom的class
2018/04/26 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
简单了解python中对象的取反运算符
2019/07/01 Python
django Admin文档生成器使用详解
2019/07/22 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
销售业务员岗位职责
2015/02/13 职场文书
超市督导岗位职责
2015/04/10 职场文书
电力安全学习心得体会
2016/01/18 职场文书