📜  PHP | array_intersect_uassoc()函数(1)

📅  最后修改于: 2023-12-03 15:18:21.475000             🧑  作者: Mango

PHP | array_intersect_uassoc()函数

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'

注意事项
  • 回调函数必须返回一个整数,在版本PHP 7.0.0之前,这个函数会在回调结果为float时产生警告信息。