PHP array_diff_ukey() 函数
说明
array_diff_ukey()
函数比较两个或多个数组的键,并使用用户定义的键比较函数返回差异。
此外,比较中不考虑键的值,只检查键。
下表总结了该函数的技术细节。
返回值: | 返回一个数组,其中包含 array1 中的所有元素,这些元素的键不存在于其他数组的 任何 。 |
---|---|
版本: | PHP 5.1.0+ |
语法
array_diff_ukey()
函数的基本语法如下:
array_diff_ukey(array1, array2, ..., key_compare_function);
下面的例子展示了 array_diff_ukey()
函数的作用。
<?php
// 定义键比较函数
function compare($a, $b){
// Converting key to lowercase
$a = strtolower($a);
$b = strtolower($b);
if($a == $b){
return 0;
}
return ($a < $b) ? -1 : 1;
}
// 样本数组
$array1 = array("cat"=>2, "lion"=>5, "zebra"=>8);
$array2 = array("CAT"=>3, "FOX"=>1, "LION"=>5, "WOLF"=>7);
//计算差异
$result = array_diff_ukey($array1, $array2, "compare");
print_r($result);
?>
注意: 如果两个键相等,则键比较函数必须返回一个等于 0 的整数,如果第一个键小于第二个键,则返回一个小于零的整数,如果两个键相等,则返回一个大于零的整数。 第一个键大于第二个键。
或者,您可以简单地使用 PHP 内置的 strcasecmp()
函数,该函数执行不区分大小写的字符串比较,如果 str1 小于 str2,则返回 < 0
; 如果 str1 大于 str2,则为 > 0
,如果它们相等,则为 0
。 因此,上面的例子可以改写为:
<?php
// 样本数组
$array1 = array("cat"=>2, "lion"=>5, "zebra"=>8);
$array2 = array("CAT"=>3, "FOX"=>1, "LION"=>5, "WOLF"=>7);
//计算差异
$result = array_diff_ukey($array1, $array2, "strcasecmp");
print_r($result);
?>
参数
array_diff_ukey()
函数接受以下参数。
参数 | 说明 |
---|---|
array1 | |
array2 | 必填。 指定一个数组来比较键。 |
... | 可选。 指定更多数组来比较键。 |
key_compare_function | 必填。 指定用于键比较的回调函数。 |
更多示例
这里有更多示例展示了 array_diff_ukey()
函数的实际工作原理:
以下示例演示了如何使用用户自定义的键比较函数比较三个数组的键并获取差异。
<?php
// 样本数组
$array1 = array("cat"=>2, "lion"=>5, "zebra"=>8);
$array2 = array("BEAR"=>3, "CAT"=>1, "FOX"=>4, "WOLF"=>7);
$array3 = array("elephant"=>1, "tiger"=>2, "zebra"=>5);
//计算差异
$result = array_diff_ukey($array1, $array2, $array3, "strcasecmp");
print_r($result);
?>
Advertisements