用使用者提供的回撥函式做索引檢查來計算陣列的差集

array_diff_uassoc

(PHP 5, PHP 7, PHP 8)

array_diff_uassoc用使用者提供的回撥函式做索引檢查來計算陣列的差集

說明

array_diff_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

比較了 arrayarrays 並返回不同之處。 注意和 array_diff() 不同的是鍵名也用於比較。

array_diff_assoc() 不同的是使用了使用者自定義的回撥函式,而不是內建的函式。

參數

array

待比較的陣列

arrays

要比較的陣列

key_compare_func

在第一個參數小於,等於或大於第二個參數時,該比較函式必須相應地返回一個小於,等於或大於 0 的整數。

callback(mixed $a, mixed $b): int

返回值

返回一個 array,該陣列包括了所有在 array 中但是不在任何其它參數陣列中的值。

範例

示例 #1 array_diff_uassoc() 例子

上面的例子中 "a" => "green" 出現在兩個陣列中因此不在函式的輸出中。但是 0 => "red" 卻在輸出中,因為第二個參數中的 "red" 的鍵名是 1

<?php
function key_compare_func($a$b)
{
    if (
$a === $b) {
        return 
0;
    }
    return (
$a $b)? 1:-1;
}

$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result array_diff_uassoc($array1$array2"key_compare_func");
print_r($result);
?>

以上例程會輸出:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

通過使用者提供的回撥函式檢查兩個陣列的索引是否相等。

註釋

注意:

注意本函式只檢查了多維陣列中的一維。當然可以用 array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); 檢查更深的維度。

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *