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 ...
随机推荐
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
package com.ucap.netcheck.dao.impl; import java.util.ArrayList;import java.util.List; import org. ...
- CUDA学习,使用shared memory实现Reverse Array
- Swing中经常会遇到的若干问题——JTable(持续更新)
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/40955213 (1)让组件在屏幕中央显示 public s ...
- OC:打僵尸问题(类的问题)
1.定义普通僵尸类: 实例变量:僵尸种类.僵尸总血量.僵尸每次失血量. 方法:初始化方法(设置僵尸种类,总血量).被打击失血.死亡. 2.定义路障僵尸类: 实例变量:僵尸种类.僵尸总血量.僵尸每次失血 ...
- SpriteBuilder复杂CCB在App场景加载时报错排查
Player.CCB由body和arm两部分组成,它们都开启物理使能. 在GameScene.ccb中新建一个物理对象,将Player.ccb拖入该对象.此时编译运行App均正常. 然后继续添加其他物 ...
- 16_Android生命周期再介绍,通过androidconfigChanges属性让界面旋转时不改变状态中保留的值
A android:configChanges属性 对android:configChanges属性,一般认为有以下几点: 1 不设置Activity的android:configChange ...
- MPEG-7 视觉描述符
本文节选自<基于MPEG-7与内容的图像检索技术的研究>. MPEG-7 标准中视觉描述工具包括基本结构和描述符.本文主要介绍各描述符. (1)颜色描述符 MPEG-7 主要定义了七种颜色 ...
- STL算法设计理念 - 预定义函数对象
预定义函数对象基本概念:标准模板库STL提前定义了很多预定义函数对象 1)使用预定义函数对象: #include <iostream> #include <cstdio> #i ...
- ANN实现
ANN核心数据结构: typedef struct { int input_n; /* number of input units */ int h ...
- linux内核 container_ofC语言之应用
之前在剖析内核链表的文章中就有说到这个 container_of宏展开后的应用技巧. //offset(struct list , list);----->展开后((size_t) & ...