求数组差集函数

  • 函数只检查了多维数组中的一维。可以用 array_diff($array1[0], $array2[0]) 检查更深的维度。
  • u:自定义函数比较,a(association):同时比较
  • 自定义函数callable $value_compare_func必须返回一个小于零,等于零,或大于零的整数。其中返回零代表两个数相等。

对比数组值的函数


array_diff

  • 对比(===) array1array2···的值(value),返回在 $array1 中但是不在其他 array 里的值,键名保留不变。
array array_diff ( array $array1 , array $array2 [, array $... ] )

array_udiff

  • 用自定义函数比较 $array1, $array2···的值(value),函数参数为数组的。返回在$array1,不在其他array的元素,保持键值关联。
array array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )
int value_compare_func(( mixed $a, mixed $b )) //该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
#返回0,意味着两个数相等,即值在两个数组都出现了,所以等于0不返回值。
#根据value_compare_func($a, $b)的参数顺序返回元素,如:value_compare_func($b, $ba),返回在$b不在$a的元素

对比数组键的函数


array_diff_key

  • 对比(===) array1array2···的键(key),所有出现在 $array1 中但是不在其他array中的键(key)的值。
array array_diff_key ( array $array1 , array $array2 [, array $... ] )

array_diff_ukey

  • 用自定义函数比较 $array1, $array2···的,函数参数为数组的,键不同即返回元素。返回在$array1,不在其他array的元素,保持键值关联。
array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

同时对比


array_diff_assoc

  • 比较 $array1, $array2···的键(key)值(value),返回在$array1,不在其他array的元素,保持键值关联。。
array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

array_diff_uassoc

  • 用自定义函数比较 $array1, $array2···的键(key)值(value),回调函数参数为数组的,键值都相同时不返回元素。返回在$array1,不在其他array的元素,保持键值关联。
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_udiff_assoc

  • 用自定义函数比较 $array1, $array2···的键(key)值(value),回调函数参数为数组的,键值都相同时不返回元素。返回在$array1,不在其他array的元素,保持键值关联。
array array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

array_udiff_uassoc

  • 用自定义函数比较 $array1, $array2···的键(key)值(value),两个函数参数分别为数组的/。返回在$array1,不在其他array的元素,保持键值关联。
array array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

求数组交集函数

  • 交集函数和差集函数的用法大同小异

对比数组的函数,不比较


array_intersect

  • 计算数组的交集

array_uintersect

  • 计算数组的交集,用回调函数比较数据

对比数组的函数,不比较


array_intersect_key

  • 使用键名比较计算数组的交集

array_intersect_ukey

  • 用回调函数比较键名来计算数组的交集

同时对比数组的函数


array_intersect_assoc

  • 带索引检查计算数组的交集

array_intersect_uassoc

  • 带索引检查计算数组的交集,用回调函数比较索引

array_uintersect_assoc

  • 带索引检查计算数组的交集,用回调函数比较数组值

array_uintersect_uassoc

  • 带索引检查计算数组的交集,用单独的回调函数比较数据和索引

原文地址:https://segmentfault.com/a/1190000015797875

求数组差/交集函数-php数组函数(二)的更多相关文章

  1. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

  2. PHP自己定义函数及数组

    个人原创博客:http://www.phpthinking.com/archives/350 一.自己定义函数 自己定义函数就是我们自己定义的函数.在PHP中自己定义函数格式例如以下: 1 funct ...

  3. PHP移动互联网开发笔记(4)——自定义函数及数组

    一.自定义函数 自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下: function funname(arg1, arg2, arg3......){ //TODO return val ...

  4. lintcode:最大子数组差

    题目 最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 样例 给出数组[1, 2, -3, 1], ...

  5. lintcode-45-最大子数组差

    45-最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 注意事项 子数组最少包含一个数 样例 给出 ...

  6. PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解

    求两个数组的交集问题可以使用 array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中 array_intersect()函数是 ...

  7. 求数组的最小数、最大值,求一组数的平均数,sort函数详解,类数组转数组

    求数组的最小值和最大值 //求数组当中最大值和最小值 var arr=[3,2,6,1,45,23,456,23,2,6,3,45,37,89,30]; //第一种方法 根据排序方法来求最大值和最小值 ...

  8. 求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。函数为 int same(int num)其中num是输入的整型数字

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test { pub ...

  9. (C#) 求两个数组的交集

    基本上在面试的时候,会具体到两个int数组,或string数组.具体也就是讨论算法. 首先需要的是和面试的人确认题目的含义,并非直接答题. 然后,可以提出自己的想法,首先最快的是用linq { Lis ...

随机推荐

  1. source命令用法(转载)

    转自:http://zhidao.baidu.com/link?url=mNfsPHSjTEm7llgyMYx0UVNwkJmD_cxLeHtZnHcM6Ms8LDXofVHka_EzHi6GltbR ...

  2. MySQL - MyCat 实现读写分离

    前言 MyCat是一个彻底开源的,面向企业应用开发的大数据库集群,支持事务.ACID.可以替代MySQL的加强版数据库.其功能有可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群.融 ...

  3. J201700526-hm

    プレーンテキスト  纯文本 きも 肝 リレーショナル 亲属的,相关的,有关的; ギャップ 缺口; 间隔; 分歧;

  4. vue项目开发中踩过的坑

    一.路由 这两天移动端的同事在研究vue,跟我说看着我的项目做的,子路由访问的时候是空白的,我第一反应是,不会模块没加载进来吧,还是....此处省略一千字... 废话不多说上代码 路由代码 { pat ...

  5. bzoj 4031: [HEOI2015]小Z的房间【矩阵树定理】

    是板子题,因为mod不是质数所以需要辗转相除然而并不知道为啥 高斯消元部分还不知道原理呢--先无脑背过的 #include<iostream> #include<cstdio> ...

  6. http升级https(转)

    让你的网站免费支持 HTTPS 及 Nginx 平滑升级 为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上 ...

  7. LOJ#557. 「Antileaf's Round」你这衣服租来的吗(FHQ Treap+珂朵莉树)

    题面 传送门 题解 好吧我是不太会复杂度分析-- 我们对于每种颜色用一个数据结构维护(比方说线段树或者平衡树,代码里写的平衡树),那么区间询问很容易就可以解决了 所以现在的问题是区间修改,如果区间颜色 ...

  8. Lightoj 1020 - A Childhood Game (博弈)

    题目链接: 1020 - A Childhood Game 题目描述: Alice和Bob在玩弹珠游戏,两人轮流拿走弹珠,每次只能拿走一个或者两个,当Alice作为先手时谁拿走最后一个就是输家,而Bo ...

  9. spring controller接口中,用pojo对象接收页面传递的参数,发现spring在对pojo对象赋值时,有一定顺序的问题

    1.我的项目中的实体类都继承了基类entityBase,里面封装了分页的一些属性,pageindex.pagesize.pagerownum等. 2.思路是页面可以灵活的传递分页参数,比如当前页pag ...

  10. ViewPager(2)FragmentStatePagerAdapter示例

    FragmentStatePagerAdapter适用于数量比较大的viewPager,只会存在 前1个fragment 当前fragment 和下1个fragment,其他销毁,适合加载多数据.本例 ...