求数组差/交集函数-php数组函数(二)
求数组差集函数
- 函数只检查了多维数组中的一维。可以用
array_diff($array1[0], $array2[0])
检查更深的维度。 u
:自定义函数比较,a(association)
:同时比较键
和值
。- 自定义函数callable $value_compare_func必须返回一个小于零,等于零,或大于零的整数。其中返回零代表两个数相等。
对比数组值的函数
array_diff
- 对比(===)
array1
,array2
···的值(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
- 对比(===)
array1
,array2
···的键(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数组函数(二)的更多相关文章
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- PHP自己定义函数及数组
个人原创博客:http://www.phpthinking.com/archives/350 一.自己定义函数 自己定义函数就是我们自己定义的函数.在PHP中自己定义函数格式例如以下: 1 funct ...
- PHP移动互联网开发笔记(4)——自定义函数及数组
一.自定义函数 自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下: function funname(arg1, arg2, arg3......){ //TODO return val ...
- lintcode:最大子数组差
题目 最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 样例 给出数组[1, 2, -3, 1], ...
- lintcode-45-最大子数组差
45-最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 注意事项 子数组最少包含一个数 样例 给出 ...
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解
求两个数组的交集问题可以使用 array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中 array_intersect()函数是 ...
- 求数组的最小数、最大值,求一组数的平均数,sort函数详解,类数组转数组
求数组的最小值和最大值 //求数组当中最大值和最小值 var arr=[3,2,6,1,45,23,456,23,2,6,3,45,37,89,30]; //第一种方法 根据排序方法来求最大值和最小值 ...
- 求一个整型数字中有没有相同的部分,例如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 ...
- (C#) 求两个数组的交集
基本上在面试的时候,会具体到两个int数组,或string数组.具体也就是讨论算法. 首先需要的是和面试的人确认题目的含义,并非直接答题. 然后,可以提出自己的想法,首先最快的是用linq { Lis ...
随机推荐
- python-----opencv读取视频、读取图片 显示指定大小并按键实现暂停、播放
按空格键实现暂停播放,代码如下: cv2.namedWindow("m1", 0) cv2.resizeWindow("m1", 800, 600) cv2.i ...
- luogu3941入阵曲
https://www.zybuluo.com/ysner/note/1301562 题面 统计在给出的\(n*m\)矩阵中,有多少个不同的子矩形中的数字之和是\(k\)的倍数? 解析 切不掉这道题是 ...
- 洛谷P3216 [HNOI2011]数学作业
题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 .. N) Mod M 的值,其中 Concatenat ...
- CF 908 D New Year and Arbitrary Arrangement —— 期望DP
题目:http://codeforces.com/contest/908/problem/D 首先,设 f[i][j] 表示有 i 个 a,j 个 ab 组合的期望,A = pa / (pa + pb ...
- System.out.println()的含义
system是java.lang包中定义的一个内置类,在该类中定义了一个静态对象out out是PrintStream类的实例对象 println是PrintStream类中的方法
- [USACO09NOV]灯Lights
题目描述 Bessie and the cows were playing games in the barn, but the power was reset and the lights were ...
- Linux环境下安装JDK并配置环境变量
首先查看是否已经安装了JDK并配置环境变量. [root@dhcc_plat opt]# java -version -bash: java: command not found [root@dhcc ...
- ActiveMQ命令行工具
命令行工具 命令行工具 n activemq——运行activemq代理 n activemq-admin——管理代理的实例 在5.0之前activemq-admin被分成多个脚本,例如 ...
- Docker (1) 基本概念和安装
Docker简介 什么是容器? 一种虚拟化的方案,操作系统级别的虚拟化.容器是一个轻量的.独立的.可执行的包,包含了执行它所需要的所有东西:代码.运行环境.系统工具.系统库.设置.很长一段时间中,容器 ...
- Python批量生成用户名
写在最前 平时在工作中尤其是在做压测的时候难免需要一些用户名和密码,写个简单的Python小脚本批量生成一些 代码示例 import random,string #生成大小字母和数字一起的大字符串 a ...