PHP array_udiff() 函數(shù)
定義和用法
array_udiff() 函數(shù)返回一個數(shù)組,該數(shù)組包括了所有在被比較數(shù)組中,但是不在任何其它參數(shù)數(shù)組中的值,鍵名保留不變。
array_udiff() 函數(shù)與 array_diff() 函數(shù) 的行為不同,后者用內(nèi)部函數(shù)進(jìn)行比較。
數(shù)據(jù)的比較是用 array_udiff() 函數(shù)的 function 進(jìn)行的。function 函數(shù)帶有兩個將進(jìn)行比較的參數(shù)。如果第一個參數(shù)小于第二個參數(shù),則函數(shù)返回一個負(fù)數(shù),如果兩個參數(shù)相等,則要返回 0,如果第一個參數(shù)大于第二個,則返回一個正數(shù)。
語法
array_udiff(array1,array2,array3...,function)
參數(shù) | 描述 |
---|---|
array1 | 必需。被比較的數(shù)組。 |
array2 | 必需。用來做比較的數(shù)組。 |
array3 | 可選。用來做比較的數(shù)組,可有多個。 |
function | 必需。自定義的比較回調(diào)函數(shù)。 |
注釋和提示
注釋:該函數(shù)只進(jìn)行鍵值的比較,不比較鍵名。如 "a"=>1 和 "b"=>1 這兩個元素視作相等的。
注釋:array_udiff() 函數(shù)僅檢查多維數(shù)組中的一維。
例子
<?php function myfunction($v1,$v2) { if ($v1===$v2) { return 0; } return 1; } $a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); $a2=array(1=>"Cat",2=>"Dog",3=>"Fish"); print_r(array_udiff($a1,$a2,"myfunction")); ?>
輸出:
Array ( [c] => Horse )