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基础知识:控制结构
Dec 13 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
php array的学习笔记
May 16 PHP
Zend的Registry机制的使用说明
May 02 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
PHP面试题之文件目录操作
Oct 15 PHP
简单的自定义php模板引擎
Aug 26 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
php模拟实现斗地主发牌
Apr 22 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
德生PL330的评价与改造
2021/03/02 无线电
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
初学node.js中实现删除用户路由
2019/05/27 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
python学习 流程控制语句详解
2016/06/01 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python 同时运行多个程序的实例
2019/01/07 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
Python 创建守护进程的示例
2020/09/29 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
JS原生实现轮播图的几种方法
2021/03/23 Javascript
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
同学会演讲稿
2019/04/02 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle