PHP合并数组的三种方法的分析与比较
常用的合并数组的方法有三种:array_merge()、array_merge_recursive()、+,下面一个一个介绍
array_merge()
此函数合并一个或多个数组,当输入的数组中有相同的字符串键名,则后一个会覆盖前一个。对于参数数组中数字索引的值会重新排序,不管数字索引相同还是不同。
代码如下:
$arr1 = array('name' => 'tom', 123, 456);
$arr2 = array('age' => 13, 'name' => 'peter', 'hello', 'world');
$arr = array_merge($arr1, $arr2);
var_dump($arr1);
var_dump($arr2);
var_dump($arr);
运行结果:
array (size=3)
'name' => string 'tom' (length=3)
0 => int 123
1 => int 456 array (size=4)
'age' => int 13
'name' => string 'peter' (length=5)
0 => string 'hello' (length=5)
1 => string 'world' (length=5) array (size=6)
'name' => string 'peter' (length=5)
0 => int 123
1 => int 456
'age' => int 13
2 => string 'hello' (length=5)
3 => string 'world' (length=5)
array_merge_recursive()
此函数会递归地合并一个或多个数组,当输入的数组中有相同的字符串键名时会合并到一个数组中,而不是覆盖。
代码如下:
$arr1 = array('name' => 'tom', 123, 456);
$arr2 = array('age' => 13, 'name' => 'peter', 'hello', 'world');
$arr = array_merge_recursive($arr1, $arr2);
var_dump($arr1);
var_dump($arr2);
var_dump($arr);
运行结果:
array (size=3)
'name' => string 'tom' (length=3)
0 => int 123
1 => int 456 array (size=4)
'age' => int 13
'name' => string 'peter' (length=5)
0 => string 'hello' (length=5)
1 => string 'world' (length=5) array (size=6)
'name' =>
array (size=2)
0 => string 'tom' (length=3)
1 => string 'peter' (length=5)
0 => int 123
1 => int 456
'age' => int 13
2 => string 'hello' (length=5)
3 => string 'world' (length=5)
+
加号在合并数组时如果出现数组中有相同的字符串键名或者是相同的数字索引时都会进行前边的值覆盖后边的值。
代码如下:
$arr1 = array('name' => 'tom', 123, 456);
$arr2 = array('age' => 13, 'name' => 'peter', 'hello', 'world');
$arr = $arr1 + $arr2;
var_dump($arr1);
var_dump($arr2);
var_dump($arr);
运行结果:
array (size=3)
'name' => string 'tom' (length=3)
0 => int 123
1 => int 456 array (size=4)
'age' => int 13
'name' => string 'peter' (length=5)
0 => string 'hello' (length=5)
1 => string 'world' (length=5) array (size=4)
'name' => string 'tom' (length=3)
0 => int 123
1 => int 456
'age' => int 13
PHP合并数组的三种方法的分析与比较的更多相关文章
- php数组合并有哪三种方法
php数组合并有哪三种方法 一.总结 一句话总结:array_merge():array_merge_recursive():‘+'号 $a = array('color'=>'red',5,6 ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...
- (六)C#中判断空字符串的三种方法性能分析
三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...
- java合并数组的几种方法,stream流合并数组
一.实例代码 package cc.ash; import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Array; i ...
- 【Javascript】JS遍历数组的三种方法:map、forEach、filter
前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历.处理,JS自带的遍历方法有很多种,往往不加留意,就可能导致知识混乱的现象,并且其中还存在一些坑.前端时间在ediary中总结了js原生自带的 ...
- Java创建数组的三种方法
■ 第一种: int[] arr=new int[6]; arr[0] = 1; arr[1] = 2 arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; ...
- JS合并数组的几种方法及优劣比较
本文属于JavaScript的基础技能. 我们将学习结合/合并两个JS数组的各种常用方法,并比较各种方法的优缺点. 我们先来看看具体的场景: var q = [ 5, 5, 1, 9, 9, 6, 4 ...
- ZH奶酪:JavaScript清空数组的三种方法
参考链接:http://snandy.iteye.com/blog/893955 方式1,length赋值为0 目前 Prototype中数组的 clear 方法和mootools库中数组的 empt ...
- JS创建数组的三种方法
1 常规方式 创建数组并给数组元素赋值 var myCars = new Array(); myCars[0] = "Saab"; myCars[1] = "Vo ...
随机推荐
- Socket编程实践(4) --多进程并发server
1.Socket地址复用 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); in ...
- Shell入门之概念
1.一切皆是文件: 在bash Shell 中一切皆是文件,不管是我们认为的文本文件,还是那些文件夹的东西,在这里都是文件,Linux只管比特和字节流,而不关心他们最终组成了什么格式,这些工作交给在L ...
- (四十八)Quartz2D引擎进阶
图形上下文栈: 应用,修改过上下文后,下一次画会在这个基础上进行,如果清空状态,需要上下文栈. 可以先把原来的上下文保存起来,然后恢复: - (void)drawRect:(CGRect)rect { ...
- 基于Qt的手机程序----口袋理财
主页面 记账模块 制定目标 备忘录
- 第一篇、vlc-android之开篇介绍
转载请注明出处:http://blog.csdn.net/cuiran/article/details/30054835 最近一直研究android的视频直播部分,从最开始的直接播放本地视频文件,到使 ...
- AngularJS进阶(三十一)AngularJS项目开发技巧之获取模态对话框中的组件ID
AngularJS项目开发技巧之获取模态对话框中的组件ID 需求 出于项目开发需求,需要实现的业务逻辑是:药店端点击查看"已发货""已收货"订单详情时,模块弹出 ...
- wing带你玩转自定义view系列(1) 仿360内存清理效果
本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. ...
- android 面试之listview
ListView优化一直是一个老生常谈的问题,不管是面试还是平常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看如何最大化的优化ListView的性能.· 1.在adapter中的g ...
- android 常用方法集合
private static Contextcontext; privatestatic Displaydisplay; private static String TAG = "MyToo ...
- Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
ok,今天继续更新Material Design系列!!! 废话不说,先看看效果图吧: 好了,现在来讲讲上图是怎么实现的吧!讲之前先讲讲几个控件: CoordinatorLayout 该控件也是De ...