PHP array_uintersect() 函数
说明
array_uintersect()
函数比较两个或多个数组的值,并使用用户定义的值比较函数返回匹配项。
这与 array_intersect()
不同,后者使用内部函数来比较值。 此外,比较中不考虑键,仅检查值。
下表总结了该函数的技术细节。
返回值: | 返回一个数组,其中包含 array1 中的所有元素,这些元素的值存在于其他数组的所有 中。 |
---|---|
版本: | PHP 5+ |
语法
array_uintersect()
函数的基本语法如下:
array_uintersect(array1, array2, ..., value_compare_function);
下面的例子展示了 array_uintersect()
函数的作用。
<?php
// 定义值比较函数
function compare($a, $b){
// Converting value to lowercase
$a = strtolower($a);
$b = strtolower($b);
if($a == $b){
return 0;
}
return ($a < $b) ? -1 : 1;
}
// 样本数组
$array1 = array("apple", "ball", "cat", "dog", "elephant");
$array2 = array("alligator", "DOG", "elephant", "lion", "Cat");
// 计算交点
$result = array_uintersect($array1, $array2, "compare");
print_r($result);
?>
注意:如果两个值相等,值比较函数必须返回一个等于零的整数,如果第一个值小于第二个值,则返回一个小于零的整数,如果两个值相等,则返回一个大于零的整数。 第一个值大于第二个值。
参数
array_uintersect()
函数接受以下参数。
参数 | 说明 |
---|---|
array1 | 必填。 指定要比较的数组。 |
array2 | 必填。 指定要比较的数组。 |
... | 可选。 指定要比较的更多数组。 |
value_compare_function | 必填。 指定用于值比较的回调函数。 |
更多示例
下面是更多示例,展示了 array_uintersect()
函数的实际工作原理:
下面的示例展示了如何使用 PHP 内置的 strcasecmp()
函数作为值比较函数来比较三个数组的值并获取匹配项。
<?php
// 样本数组
$array1 = array("apple", "ball", "cat", "dog");
$array2 = array("Apple", "Cat", "Elephant");
$array3 = array("APPLE", "BANANA", "CAT");
// 计算交点
$result = array_uintersect($array1, $array2, $array3, "strcasecmp");
print_r($result);
?>
您也可以使用关联数组,但在比较中不考虑键。
<?php
// 样本数组
$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
$array2 = array("x"=>"black", "y"=>"BLUE", "z"=>"Red");
// 计算交点
$result = array_uintersect($array1, $array2, "strcasecmp");
print_r($result);
?>
Advertisements