array_udiff_uassoc()
函式用於返回兩個或多個陣列的差集,這個差集透過回撥函式進行比較。
用法:
array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func ) : array
引數:
$array1
:必需,第一個陣列。$array2
:必需,要比較的第二個陣列。$...
:可選,從第三個陣列開始,要比較的其他陣列。$value_compare_func
:必需,一個自定義的比較函式用於比較陣列的值。- 函式原型:
int function_name ( mixed $a, mixed $b )
- 如果返回值小於 0,則
$a
小於$b
; - 如果返回值等於 0,則
$a
等於$b
; - 如果返回值大於 0,則
$a
大於$b
。
- 函式原型:
$key_compare_func
:必需,一個自定義的比較函式用於比較陣列的鍵。- 函式原型:
int function_name ( mixed $a, mixed $b )
- 如果返回值小於 0,則
$a
小於$b
; - 如果返回值等於 0,則
$a
等於$b
; - 如果返回值大於 0,則
$a
大於$b
。
- 函式原型:
返回值:
一個陣列,包含了 $array1
中存在但是其他陣列中不存在的值,基於鍵名和鍵值的比較。
示例:
function cmp($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
$array1 = [
"a" => "red",
"b" => "green",
"c" => "blue"
];
$array2 = [
"a" => "red",
"b" => "blue",
"c" => "green"
];
$result = array_udiff_uassoc($array1, $array2, "cmp", "cmp");
print_r($result);
輸出:
Array
(
[b] => green
[c] => blue
)
在示例中,透過 array_udiff_uassoc()
函式計算了 $array1
和 $array2
的差集,並使用 cmp()
函式進行值的比較,同時使用 cmp()
函式進行鍵的比較。最後,輸出結果為包含差集的新陣列。