php获取两个数组相同的元素(交集)以及比较两个数组中不同的元素(差集)
(一)php获取两个数组相同元素
array array_intersect(array $array1, array $array2, [, array $...
])
array array_intersect_assoc(array $array1, array $array2, [, array $...
])
这两个方法的功能基本一致,都是返回两个数组(也可以是多个数组)中都存在的元素,不同的是,前者只考虑数组中元素的 value 一致就认为两者相同,而后者需要 key 和 value 都一致才认为两者相同,例如:
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c');
$array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_intersect($array1,$array2));
运行上面的代码会得到如下结果:
array(4) {
[0]=>
string(1) "1"
["a"]=>
string(6) "aaaaaa"
["b"]=>
string(6) "bbbbbb"
[1]=>
string(1) "c"
}
而使用方法 array_intersect_assoc()将会得到如下结果:
array(1) {
["a"]=>
string(6) "aaaaaa"
}
(二)php比较两个数组中的不同元素
array array_diff(array $array1, array $array2, [, array $...
])
array array_diff_assoc(array $array1, array $array2, [, array $...
])
类似的,这两个方法的基本功能也是一致的,返回第一个数组中有,但是其它数组没有的元素。 前者只比较值,后者同时比较 key 和 value。
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c');
$array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_diff($array1,$array2));
上面代码的运行结果为:
array(0) {
}
而如果把最后一行更换为 var_dump(array_diff_assoc($array1, $array2)); 将得到如下结果:
array(3) {
[0]=>
string(1) "1"
["b"]=>
string(6) "bbbbbb"
[1]=>
string(1) "c"
}
php获取两个数组相同的元素(交集)以及比较两个数组中不同的元素(差集)的更多相关文章
- 给定两个list A ,B,请用找出 A ,B中相同的元素,A ,B中不同的元素 ??
A.B 中相同元素:print(set(A)&set(B)) A.B 中不同元素:print(set(A)^set(B))
- Ex 2_23 如果一个数组超过半数的元素都相同时,该数组被称为含有一个主元素..._第二次作业
将数组A划分为两个数组A1和A2 ,各含有A的一半元素或一半多一个.若A中含有主元素x,则A1和A2中至少有一个数组含有主元素x,对A1和A2递归地计算有无主元素,若A只含有一个元素,则A的主元素就是 ...
- STL迭代器的使用、正向、逆向输出双向链表中的所有元素
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 获取JS数组中所有重复元素
//获取数组内所有重复元素,并以数组返回 //例:入参数组['1','2','4','7','1','2','2'] 返回数组:['1','2'] function GetRepeatFwxmmc(a ...
- JS获取元素宽高的两种情况
JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用 document.getElementById('xxx'). ...
- (转)js在数组中删除重复的元素自保留一个(两种实现思路)
例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao']; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...
- Single Number 数组中除了某个元素出现一次,其他都出现两次,找出这个元素
Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...
- 算法练习之x的平方根,爬楼梯,删除排序链表中的重复元素, 合并两个有序数组
1.x的平方根 java (1)直接使用函数 class Solution { public int mySqrt(int x) { int rs = 0; rs = (int)Math.sqrt(x ...
- 寻找两个数组中的公共元素Java程序代码
package lianxi; import java.util.*; public class UnionSearch { public static void main(String[] args ...
随机推荐
- [转]Angular 4 *ngIf/Else
本文转自:http://tylerscode.com/2017/03/angular-4-ngifelse/ As you may know it wasn’t that many months ag ...
- js 去掉缓存的几种方式
1.在Ajax发送请求前加上 anyAjaxObj.setRequestHeader ("If-Modified-Since","0") 2.在Ajax发送请求 ...
- c# 正则格式化文本防止SQL注入
/// <summary> /// 格式化文本(防止SQL注入) /// </summary> /// <param name="str">&l ...
- Transformation和Action
spark的运算操作有两种类型:分别是Transformation和Action,区别如下: Transformation:代表的是转化操作就是我们的计算流程,返回是RDD[T],可以是一个链式的 ...
- es6中的Promise学习
关于Promise Promise实例一旦被创建就会被执行 Promise过程分为两个分支:pending=>resolved和pending=>rejected Promise状态改变后 ...
- Java集合之HashSet源码分析
概述 HashSet是基于HashMap来实现的, 底层采用HashMap的key来保存数据, 借此实现元素不重复, 因此HashSet的实现比较简单, 基本上的都是直接调用底层HashMap的相关方 ...
- csharp: FTP Client Library using System.Net.FtpWebRequest
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- json&pickle数据序列化模块
用于序列化的模块 json,通用的序列化方式,序列化成为str类型,支持所有语言识别,序列化的数据具有局限性. pickle,python的所有数据类型都可以被序列化,序列化为bites格式,只适用于 ...
- 2018-02-04 AppleScript类自然语言与非英语语法设计
最早知晓是之前C#中文版的github讨论里提到了AppleScript有多语言版. 昨天想起, 觉得它毕竟是为数不多(仅有的?)大公司开发的非英语语法的编程语言, 不禁好奇它的前世今生. 于是作了一 ...
- java Name [jdbc/myjavadb] is not bound in this Context. Unable to find [jdbc].
一.出错时的情况: 首先,这是一个servlet项目 1.项目的web.xml配置了:(后来发现不配置这个也行,但是tomcat一定要配置) <resource-ref> <desc ...