array_udiff_assoc 带索引检查计算数组的差集,用回调函数比较数据
发表日期:2021-07-01 08:57:08 | 来源: | | 浏览(728) 分类:数组 函数
array_udiff_assoc
(PHP 5, PHP 7, PHP 8)
array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
说明
array
$array1
,array
$array2
,array
$...
= ?,callable
$value_compare_func
): array
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
注意: 注意本函数只检查了多维数组中的一维。当然,可以用
array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");
来检查更深的维度。
参数
-
array1
-
第一个数组。
-
array2
-
第二个数组。
-
value_compare_func
-
在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
callback(mixed$a
, mixed$b
): int
返回值
array_udiff_assoc() 返回一个数组,该数组包括了所有在
array1
中但是不在任何其它参数数组中的值。注意和
array_diff() 与 array_udiff()
不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数进行的。在此方面和
array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。
范例
示例 #1 array_udiff_assoc() 例子
<?php class cr { private $priv_member; function cr($val) { $this->priv_member = $val; } static function comp_func_cr($a, $b) { if ($a->priv_member === $b->priv_member) return 0; return ($a->priv_member > $b->priv_member)? 1:-1; } } $a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),); $b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),); $result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr")); print_r($result); ?>
以上例程会输出:
Array ( [0.1] => cr Object ( [priv_member:private] => 9 ) [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )
上例中可以看到键值对 "1" => new cr(4)
同时出现在两个数组中因此不在本函数的输出中。
参见
- array_diff() - 计算数组的差集
- array_diff_assoc() - 带索引检查计算数组的差集
- array_diff_uassoc() - 用用户提供的回调函数做索引检查来计算数组的差集
- array_udiff() - 用回调函数比较数据来计算数组的差集
- array_udiff_uassoc() - 带索引检查计算数组的差集,用回调函数比较数据和索引
- array_intersect() - 计算数组的交集
- array_intersect_assoc() - 带索引检查计算数组的交集
- array_uintersect() - 计算数组的交集,用回调函数比较数据
- array_uintersect_assoc() - 带索引检查计算数组的交集,用回调函数比较数据
- array_uintersect_uassoc() - 带索引检查计算数组的交集,用单独的回调函数比较数据和索引
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- array_change_key_case 将数组中的所有键名修改为全大写或小写(0)
- array_chunk 将一个数组分割成多个(0)
- array_column 返回数组中指定的一列(0)
- array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值(0)
- array_count_values 统计数组中所有的值(0)
- array_diff_assoc 带索引检查计算数组的差集(0)
- array_diff_key 使用键名比较计算数组的差集(0)
- array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集(0)
- array_diff_ukey 用回调函数对键名比较计算数组的差集(0)
- array_diff 计算数组的差集(0)
- array_fill_keys 使用指定的键和值填充数组(0)
- array_fill 用给定的值填充数组(0)
- array_filter 使用回调函数过滤数组的元素(0)
- array_flip 交换数组中的键和值(0)
- array_intersect_assoc 带索引检查计算数组的交集(0)
- array_intersect_key 使用键名比较计算数组的交集(0)
- array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引(0)
- array_intersect_ukey 在键名上使用回调函数来比较计算数组的交集(0)
- array_intersect 计算数组的交集(0)
- array_key_exists 检查数组里是否有指定的键名或索引(0)
- array_key_first 获取指定数组的第一个键值(0)
- array_key_last 获取一个数组的最后一个键值(0)
- array_keys 返回数组中部分的或所有的键名(0)
- array_map 为数组的每个元素应用回调函数(0)
- array_merge_recursive 递归地合并一个或多个数组(0)
- array_merge 合并一个或多个数组(0)
- array_multisort 对多个数组或多维数组进行排序(0)
- array_pad 以指定长度将一个值填充进数组(0)
- array_pop 弹出数组最后一个单元(出栈)(0)
- array_product 计算数组中所有值的乘积(0)
- array_push 将一个或多个单元压入数组的末尾(入栈)(0)
- array_rand 从数组中随机取出一个或多个随机键(0)
- array_reduce 用回调函数迭代地将数组简化为单一的值(0)
- array_replace_recursive 使用传递的数组递归替换第一个数组的元素(0)
- array_replace 使用传递的数组替换第一个数组的元素(0)
- array_reverse 返回单元顺序相反的数组(0)
- array_search 在数组中搜索给定的值,如果成功则返回首个相应的键名(0)
- array_shift 将数组开头的单元移出数组(0)
- array_slice 从数组中取出一段(0)
- array_splice 去掉数组中的某一部分并用其它值取代(0)
- array_sum 对数组中所有值求和(0)
- array_udiff_assoc 带索引检查计算数组的差集,用回调函数比较数据(0)
- array_udiff_uassoc 带索引检查计算数组的差集,用回调函数比较数据和索引(0)
- array_udiff 用回调函数比较数据来计算数组的差集(0)
- array_uintersect_assoc 带索引检查计算数组的交集,用回调函数比较数据(0)
- array_uintersect_uassoc 带索引检查计算数组的交集,用单独的回调函数比较数据和索引(0)
- array_uintersect 计算数组的交集,用回调函数比较数据(0)
- array_unique 移除数组中重复的值(0)
- array_unshift 在数组开头插入一个或多个单元(0)
- array_values 返回数组中所有的值(0)
- array_walk_recursive 对数组中的每个成员递归地应用用户函数(0)
- array_walk 使用用户自定义函数对数组中的每个元素做回调处理(0)
- array 新建一个数组(0)
- arsort 对数组进行降向排序并保持索引关系(0)
- asort 对数组进行升序排序并保持索引关系(0)
- compact 建立一个数组,包括变量名和它们的值(0)
- count 计算数组中的单元数目,或对象中的属性个数(0)
- current 返回数组中的当前值(0)
- each 返回数组中当前的键/值对并将数组指针向前移动一步(0)
- end 将数组的内部指针指向最后一个单元(0)
- extract 从数组中将变量导入到当前的符号表(0)
- in_array 检查数组中是否存在某个值(0)
- key_exists 别名 array_key_exists()(0)
- key 从关联数组中取得键名(0)
- krsort 对数组按照键名逆向排序(0)
- ksort 对数组根据键名升序排序(0)
- list 把数组中的值赋给一组变量(0)
- natcasesort 用“自然排序”算法对数组进行不区分大小写字母的排序(0)
- natsort 用“自然排序”算法对数组排序(0)
- next 将数组中的内部指针向前移动一位(0)
- pos current() 的别名(0)
- prev 将数组的内部指针倒回一位(0)
- range 根据范围创建数组,包含指定的元素(0)
- reset 将数组的内部指针指向第一个单元(0)
- rsort 对数组降序排序(0)
- shuffle 打乱数组(0)
- sizeof count() 的别名(0)
- sort 对数组升序排序(0)
- uasort 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联(0)
- uksort 使用用户自定义的比较函数对数组中的键名进行排序(0)
- usort 使用用户自定义的比较函数对数组中的值进行排序(0)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)