array_diff_uassoc()函數(shù)比較兩個(或多個)數(shù)組的鍵和值,并返回一個包含array1中的條目的數(shù)組,這些條目在任何其他具有相同值的數(shù)組中都不存在。
此函數(shù)不同于array_diff(),因為array_diff()比較值,而此函數(shù)比較其他數(shù)組中的鍵及其值。
此函數(shù)與array_diff_assoc()不同,因為array_diff_assoc()使用內(nèi)部算法比較鍵及其值,而此函數(shù)使用用戶定義的函數(shù)比較鍵及其值。
array_diff_uassoc ( $array1, $array2 [, $array3..., callback $key_compare_func] );
序號 | 參數(shù)及說明 |
---|---|
1 | array1(必填) 要比較的數(shù)組 |
2 | array2(必填) 這是一個要與第一個數(shù)組進行比較的數(shù)組 |
3 | array3(Optional) 與第一個數(shù)組進行比較的數(shù)組 |
4 | key_compare_func(必填) 在第一個參數(shù)小于,等于或大于第二個參數(shù)時,該比較函數(shù)必須相應(yīng)地返回一個小于,等于或大于 0 的整數(shù)。 |
此函數(shù)返回一個數(shù)組,其中包含array1中的所有條目,但其他任何數(shù)組中都不存在。
此函數(shù)最早是在PHP版本5.0.0中引入的。
試試下面的實例。在這里,如果 $input1鍵等于任何其他輸入數(shù)組,則鍵比較函數(shù)返回0; 如果大,則返回1; 如果小,則返回 -1。
使用定義的函數(shù)比較鍵時,兩個數(shù)組中確實都有鍵“ a”,因此它不會出現(xiàn)在輸出中。 下一個鍵“ b”和“ c”不在第二個數(shù)組中,因此它將進入輸出。 另外的對0 =>“ red”在輸出中,因為在第二個參數(shù)“ red”中的鍵為1:
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1: -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>測試看看?/?
輸出結(jié)果:
Array ( [b] => brown [c] => blue [0] => red )
試試下面的實例。這次“red”將不在輸出中,因為現(xiàn)在兩個鍵都等于0。
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1: -1; } $input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $input2 = array("a" => "green", "c" => "yellow", "red"); $result = array_diff_uassoc($input1, $input2, "key_compare_func"); print_r($result); ?>測試看看?/?
輸出結(jié)果:
Array ( [b] => brown [c] => blue )