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 网络开发详解之远程文件包含漏洞
Apr 25 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php使用百度ping服务代码实例
Jun 19 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
zend framework中使用memcache的方法
Mar 04 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP7 新增常量
Mar 09 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
移动端界面的适配
2017/01/11 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
python定位xpath 节点位置的方法
2019/08/27 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
离婚财产分隔协议书
2014/10/23 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
导游词之神仙居景区
2019/11/15 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
详解Python中__new__方法的作用
2022/03/31 Python