函式名:array_udiff_assoc()
功能:比較兩個或多個陣列的鍵值對,並返回在第一個陣列中存在而在其他陣列中不存在的鍵值對
用法:array_udiff_assoc(array1, array2, array3,..., callback)
引數:
- array1: 第一個陣列
- array2, array3,...: 其他要進行比較的陣列,可選
- callback: 使用者自定義的比較函式,用於比較兩個鍵值對是否相等。該函式需要返回一個整數值,表示兩個值的比較結果。具體的比較邏輯由使用者定義。
返回值:一個陣列,包含了所有在第一個陣列中存在而在其他陣列中不存在的鍵值對。
示例:
// 自定義比較函式,比較兩個鍵值對的值是否相等
function compare($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "durian");
$array3 = array("a" => "apple", "b" => "banana");
$result = array_udiff_assoc($array1, $array2, $array3, "compare");
// 輸出結果
echo "<pre>";
print_r($result);
echo "</pre>";
輸出:
Array
(
[c] => cherry
)
解釋:在示例中,我們定義了三個陣列,分別為$array1、$array2和$array3。透過array_udiff_assoc()函式對這三個陣列進行比較,並使用自定義比較函式compare()來判斷兩個鍵值對的值是否相等。該函式按照指定的比較邏輯進行比較,並返回在第一個陣列中存在而在其他陣列中不存在的鍵值對。在本例中,只有陣列$array1中的鍵值對["c" => "cherry"]在其他陣列中不存在,因此最後返回的結果為["c" => "cherry"]。透過print_r()函式將結果輸出到頁面上。