array_udiff_assoc() 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。
array_udiff_assoc ( $array1, $array2 [, $array3 ..., $data_compare_func] );
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
它使用附加的索引检查来计算数组的差,通过回调函数比较数据,并返回一个包含array1中的所有值的数组,这些值没有出现在任何其他参数中。
序号 | 参数及说明 |
---|---|
1 | array1(必填) 它指定一个数组。 |
2 | array2(必填) 它指定要与第一个数组进行比较的数组。 |
3 | array3(选填) 它指定要与第一个数组进行比较的数组。 |
4 | data_compare_func*(必填) 用户自定义函数的名称。 |
array_udiff_assoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 与 array_udiff() 不同的是键名也用于比较。数组数据的比较是用用户提供的回调函数进行的。在此方面和 array_diff_assoc() 的行为正好相反,后者是用内部函数进行比较的。
array_udiff_assoc使用自定义回调函数比较两个数组的差集
<?php function call_back_function($v1,$v2) { if ($v1 === $v2) { return 0; } return 1; } $input = array("a"=>"orange","b"=>"orange","c"=>"mango"); $input1 = array("a"=>"orange","b"=>"mango","c"=>"orange"); print_r(array_udiff_assoc($input,$input1,"call_back_function")); ?>测试看看‹/›
输出结果:
Array ( [b] => orange [c] => mango )