📅  最后修改于: 2023-12-03 15:18:21.475000             🧑  作者: Mango
array_intersect_uassoc()
函数是PHP内置函数之一,用于比较多个数组,返回两个或多个数组共有的键值及其对应的键名。与array_intersect()
函数不同之处在于,array_intersect_uassoc()
函数使用回调函数进行比较。
array_intersect_uassoc ( array $array1 , array $array2 [, array $... ] , callable $key_compare_func ) : array
参数说明:
array1
:必需。用于比较的第一个数组。array2, ...
:可选。用于比较的其他数组。key_compare_func
:必需。进行比较的回调函数。函数必须接收两个键名作为参数并返回一个整数值,整数值小于、等于或大于0,当第一个参数小于、等于或大于第二个参数时返回负数、零或正数。返回一个数组,该数组包含了所有参数中都具有的键名和键值。
以下示例实现了比较两个数组,并返回它们共有的键名和键值:
<?php
function my_key_compare_func($key1, $key2)
{
if ($key1 === $key2) {
return 0;
} else if ($key1 > $key2) {
return 1;
} else {
return -1;
}
}
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry', 'd' => 'dates');
$array2 = array('b' => 'orange', 'd' => 'dates', 'e' => 'elderberry');
$result = array_intersect_uassoc($array1, $array2, 'my_key_compare_func');
print_r($result);
?>
输出结果:
Array
(
[d] => dates
)
在上面的示例中,my_key_compare_func()
函数进行了键名的比较,最终返回了两个数组共有的键名为d
的键值'dates'
。