函式名稱:array_uintersect_assoc()
函式描述:該函式用於獲取兩個或多個陣列的交集,並對比陣列的鍵和值,使用使用者自定義的比較函式進行比較。
用法:
array_uintersect_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array
引數:
- $array1:必需,用於比較的第一個陣列。
- $array2:必需,用於比較的第二個陣列。
- $...:可選,用於比較的其他陣列(可以有更多陣列,用逗號分隔)。
- $value_compare_func:必需,一個使用者自定義的比較函式,用於比較陣列的鍵和值,函式返回一個整數來表示比較結果。
返回值:
- 返回一個包含兩個或多個陣列的交集的新陣列。
示例:
// 建立兩個陣列
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("d" => "red", "b" => "green", "e" => "blue");
// 自定義比較函式,以鍵和值都相等為條件
function compare_func($a, $b) {
if ($a === $b) {
return 0;
} else {
return ($a > $b) ? 1 : -1;
}
}
// 使用array_uintersect_assoc函式獲取交集
$result = array_uintersect_assoc($array1, $array2, 'compare_func');
// 列印結果
echo "<pre>";
print_r($result);
echo "</pre>";
輸出:
Array
(
[b] => green
)
在上面的示例中,我們建立了兩個陣列$array1
和$array2
,其中有一些相同的鍵值對。然後,我們定義了一個自定義的比較函式compare_func
,以比較陣列的鍵和值。最後,我們使用array_uintersect_assoc
函式獲取這兩個陣列的交集,並提供自定義的比較函式作為引數。最終,輸出結果為一個包含鍵值對[b] => green
的新陣列,這是兩個陣列中鍵和值都相等的唯一交集元素。