(一)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获取两个数组相同的元素(交集)以及比较两个数组中不同的元素(差集)的更多相关文章

  1. 给定两个list A ,B,请用找出 A ,B中相同的元素,A ,B中不同的元素 ??

    A.B 中相同元素:print(set(A)&set(B)) A.B 中不同元素:print(set(A)^set(B))

  2. Ex 2_23 如果一个数组超过半数的元素都相同时,该数组被称为含有一个主元素..._第二次作业

    将数组A划分为两个数组A1和A2 ,各含有A的一半元素或一半多一个.若A中含有主元素x,则A1和A2中至少有一个数组含有主元素x,对A1和A2递归地计算有无主元素,若A只含有一个元素,则A的主元素就是 ...

  3. STL迭代器的使用、正向、逆向输出双向链表中的所有元素

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. 获取JS数组中所有重复元素

    //获取数组内所有重复元素,并以数组返回 //例:入参数组['1','2','4','7','1','2','2'] 返回数组:['1','2'] function GetRepeatFwxmmc(a ...

  5. JS获取元素宽高的两种情况

    JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用     document.getElementById('xxx'). ...

  6. (转)js在数组中删除重复的元素自保留一个(两种实现思路)

    例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao']; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...

  7. Single Number 数组中除了某个元素出现一次,其他都出现两次,找出这个元素

    Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...

  8. 算法练习之x的平方根,爬楼梯,删除排序链表中的重复元素, 合并两个有序数组

    1.x的平方根 java (1)直接使用函数 class Solution { public int mySqrt(int x) { int rs = 0; rs = (int)Math.sqrt(x ...

  9. 寻找两个数组中的公共元素Java程序代码

    package lianxi; import java.util.*; public class UnionSearch { public static void main(String[] args ...

随机推荐

  1. SpringMVC Hello World

    前言 新年伊始,元宵佳节,窗外灯火通明,炮声连连.北漂以来第一次一个人在北京过十五. 切入正题,收假后一边要赶项目进度还要学习java,so在元宵佳节之际写了第一篇SpringMVC Hello Wo ...

  2. [转]Windows下配置Node.js和Cordova

    本文转自:https://blog.csdn.net/weixin_37730482/article/details/74388056?locationNum=3&fps=1 本文讲解在win ...

  3. MyBatis(国税)

    一.MyBatis概要 1.1.ORM介绍 对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),用于实现面向对象编程语言里不同类型系统 ...

  4. sql特殊语法

    MYSQL --判断非空select ifnull(null,'666');--666select ifnull(null,null);--null--合并字段select CONCAT('666', ...

  5. [PHP] 数据结构-循环链表的PHP实现

    1.将单链表中终端结点的指针端由空指针改为指向头结点,单循环链表,循环链表和单链表的主要差异就在于循环的判断条件上原来是判断p->next是否为空,现在则是p->next不等于头结点,则循 ...

  6. 【协议】2、TCP/IP协议三次握手与四次握手流程解析

    一.TCP报文格式  TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序 ...

  7. ConcurrentHashMap底层实现原理(JDK1.8)源码分析

    ref:https://blog.csdn.net/xu768840497/article/details/79194701 http://www.cnblogs.com/leesf456/p/545 ...

  8. js+springMVC 提交数组数据到后台

    1.ajax 代码 var ids =new Array(); $.ajax({ type: "POST", url: "/user/downReport", ...

  9. Force.com 多租户架构

    本文参考自官方文档. 多租户架构 作为云计算平台的先驱,Salesforce最大的特点是"软件即服务"(Software as a Service,Saas).实现这种技术的基础便 ...

  10. 聊聊HTTP gzip压缩与常见的Android网络框架

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/5835990.html 进入主题之前,我们先来看一下客户端与服 ...