PHP array_udiff() 函數
定義和用法
array_udiff() 函數返回一個數組,該數組包括了所有在被比較數組中,但是不在任何其它參數數組中的值,鍵名保留不變。
array_udiff() 函數與 array_diff() 函數 的行為不同,后者用內部函數進行比較。
數據的比較是用 array_udiff() 函數的 function 進行的。function 函數帶有兩個將進行比較的參數。如果第一個參數小于第二個參數,則函數返回一個負數,如果兩個參數相等,則要返回 0,如果第一個參數大于第二個,則返回一個正數。
語法
array_udiff(array1,array2,array3...,function)
參數 | 描述 |
---|---|
array1 | 必需。被比較的數組。 |
array2 | 必需。用來做比較的數組。 |
array3 | 可選。用來做比較的數組,可有多個。 |
function | 必需。自定義的比較回調函數。 |
注釋和提示
注釋:該函數只進行鍵值的比較,不比較鍵名。如 "a"=>1 和 "b"=>1 這兩個元素視作相等的。
注釋:array_udiff() 函數僅檢查多維數組中的一維。
例子
<?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 )