array_uintersect_uassoc()
函式用於獲取兩個或更多陣列的交集,同時使用使用者自定義的回撥函式比較陣列的鍵和值。
用法:
array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func , callable $value_compare_func ): array
引數:
$array1
:第一個陣列。$array2
:第二個陣列。...
:(可選)其他陣列。$key_compare_func
:一個使用者自定義的回撥函式用於比較陣列的鍵。該函式接受兩個鍵作為引數,並在它們相等時返回0。$value_compare_func
:一個使用者自定義的回撥函式用於比較陣列的值。該函式接受兩個值作為引數,並在它們相等時返回0。
返回值: 返回一個新陣列,其中包含所有輸入陣列的鍵和值的交集。
示例:
// 自定義回撥函式用於比較陣列的鍵
function keyCompare($key1, $key2) {
if ($key1 == $key2) {
return 0;
} elseif ($key1 > $key2) {
return 1;
} else {
return -1;
}
}
// 自定義回撥函式用於比較陣列的值
function valueCompare($value1, $value2) {
if ($value1 == $value2) {
return 0;
} elseif ($value1 > $value2) {
return 1;
} else {
return -1;
}
}
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("b" => "banana", "c" => "cherry", "d" => "date");
$array3 = array("c" => "cherry", "d" => "date", "e" => "elderberry");
$result = array_uintersect_uassoc($array1, $array2, $array3, "keyCompare", "valueCompare");
// 輸出結果
echo "<pre>";
print_r($result);
echo "</pre>";
輸出結果:
Array
(
[c] => cherry
)
在以上示例中,我們使用自定義的回撥函式 keyCompare()
和 valueCompare()
來比較陣列的鍵和值。函式 array_uintersect_uassoc()
返回了輸入陣列 $array1
、$array2
和 $array3
中鍵和值的交集,只有 "c" 鍵的值 "cherry" 存在於所有三個陣列中。