查詢

array_udiff_uassoc()函式—用法及示例

「 返回兩個或多個陣列的差集,這個差集透過回撥函式進行比較 」


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() 函式進行鍵的比較。最後,輸出結果為包含差集的新陣列。

補充糾錯
上一個函式: array_udiff_assoc()函式
下一個函式: array_uintersect()函式
熱門PHP函式
分享連結