论php数组合并
注:尽量不要在循环中操作数据库。
1.两个一维数组合并成一个一维数组
$a = array('morning','afternoon','night');
$b = array('breakfast','lunch','dinner');
(1)以$a中的数组元素为键名,以$b中的数组元素为键值而形成的一个新数组。
$c = array_combine($a,$b);

(2)将$a中与$b中键值相同的数组元素剔除,仅保留$a中不同的数组元素。也就是说返回差集。
$c=array_diff($a,$b);

(3)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。
$a = array('morning','afternoon','night');
$b = array('breakfast','lunch','night');
$c=array_diff_assoc($a,$b);
print_r($c);
输出结果为:

(4)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组。
$c=array_diff_key($a,$b);
空数组。
(5)将$a中与$b中键名和键值同时相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。
(6)将$a中与$b中键名相同的数组元素剔除,仅保留$a中不同的数组元素,也就是说返回差集数组,然后使用用户自定义函数比较此差集数组中的键名,对数组重新排序。
$a = array('morning','afternoon','night','today','yesterday','tomorrow');
$b = array('breakfast','lunch','night');
$c=array_diff_ukey($a,$b,function($a,$b){
if($a==$b)
return 0;
return ($a>$b)?-1:1;
});
print_r($c);

(7)将$a中与$b中键值相同的数组元素返回,键名为$a中对应的数组键名。(或者是更多数组,返回的是共有的交集)
$a = array('morning','afternoon','today','night','yesterday','tomorrow');
$b = array('breakfast','lunch','night');
$c = array_intersect($a,$b);
print_r($c);

论php数组合并的更多相关文章
- go语言:多个[]byte数组合并成一个[]byte
场景:在开发中,要将多个[]byte数组合并成一个[]byte,初步实现思路如下: 1.获取多个[]byte长度 2.构造一个二维码数组 3.循环将[]byte拷贝到二维数组中 package gst ...
- PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧
PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 ...
- JS数组键值,数组合并,
eg: var arr = [] arr.test = '测试'; arr.push(1); arr.push(2); arr.obj = '对象'; console.log(arr);// [ 1, ...
- PHP数组合并 array_merge 与 + 的差异
在PHP数组合并出过几次问题都没记住,写下来加强一点记忆 PHP数组在合并时,使用 array_merge 与 + 的差异: 1.array_merge(array $array1 [, array ...
- Python数组合并
Python数组合并 a = [1, 2] b = [3, 4] c = a + b print(c) # [1, 2, 3, 4]
- PHP数组合并的常见问题
一维数组的合并 <?php $arr1=array("a","b","c"); $arr2=array("c",& ...
- php二位数组合并
转自:http://www.cnblogs.com/losesea/archive/2013/06/14/3134900.html 题目:有以下2个二维数组 1$a=Array(0 => Arr ...
- PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...
- 华为OJ平台——整形数组合并
题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数 ...
随机推荐
- Atitit.uke 团队建设的组织与运营之道attilax总结
Atitit.uke 团队建设的组织与运营之道attilax总结 1. intro引言:2 2. aims组织成立宗旨2 1.1. Mission组织使命2 1.2. val核心价值观2 1.3. c ...
- h5嵌入视频遇到的bug及总结
最近做的一个h5活动因为嵌入视频而发现了好多以前从未发现的问题,在测试的时候不同系统不同版本不同环境等多多少少都出现了些问题,搞得我也是焦头烂额的,不过好在最终问题都解决了,自己也学到了好多东西,为了 ...
- C# 知识特性 Attribute
C#知识--获取特性 Attribute 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体关联后,可在运行时使用"反射"查询 ...
- Java实现上传下载
一.上传 二.下载 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Fi ...
- JAVA NIO Scatter/Gather(矢量IO)
矢量IO=Scatter/Gather: 在多个缓冲区上实现一个简单的IO操作.减少或避免了缓冲区拷贝和系统调用(IO) write:Gather 数据从几个缓冲区顺序抽取并沿着通道发送,就好 ...
- memcached安装配置+基础操作
先安装依赖关系 下载libevent-2.0.21-stable.tar.gz wget https://github.com/downloads/libevent/libevent/libevent ...
- What's new in Windows 10 Enterprise with Microsoft Edge.(Windows 10 新功能)
What's new in Windows 10 Enterprise with Microsoft Edge --带有Edge浏览器的Windows 10 企业版的新功能 本文摘录自公司群发邮件, ...
- 添加WoSign根证书到JDK
由于某些“众所周知”的原因,Azure中国版使用了国内的WoSign证书——和臭名昭著的CNNIC有的一拼.Apple是不信任WoSign证书的,这也是为什么用Mac OS中访问www.azure.c ...
- Freeswitch 添加可转码的G729编码
默认情况下Freeswitch自带的G729模块是pass-through-并不支持转码. 不过我们依然有个好奇的心, 所以我们决定添加一个支持G729转码的模块到Freeswitch. 1. 下载m ...
- BZOJ 1001: [BeiJing2006]狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 20029 Solved: 4957[Submit][ ...