PHP array_udiff_uassoc() 函數(shù)
定義和用法
array_udiff_uassoc() 函數(shù)返回 array1 數(shù)組中存在但其它數(shù)組中都不存在的部分。返回的數(shù)組中鍵名保持不變。
注意與 array_diff() 以及 array_udiff() 不同的是鍵名也用于比較。同時進行鍵名和鍵值的比較,如 "a"=>1 和 "b"=>1 這兩個元素是不相等的。
對鍵名(索引)的檢查也是由回調(diào)函數(shù) function1 進行的。這和 array_udiff_assoc() 的行為不同,后者是用內(nèi)部函數(shù)比較索引的。
數(shù)組數(shù)據(jù)的比較是使用用戶提供的回調(diào)函數(shù) function2 進行的。在此方面和 array_diff_assoc() 的行為正好相反,后者是用內(nèi)部函數(shù)進行比較的。
這兩個函數(shù)都帶有兩個將進行比較的參數(shù)。如果第一個參數(shù)小于第二個參數(shù),則函數(shù)返回一個負(fù)數(shù),如果兩個參數(shù)相等,則要返回 0,如果第一個參數(shù)大于第二個,則返回一個正數(shù)。
語法
array_udiff_uassoc(array1,array2,array3...,function1,function2)
參數(shù) | 描述 |
---|---|
array1 | 必需。被比較的數(shù)組。 |
array2 | 必需。用來做比較的數(shù)組。 |
array3 | 可選。用來做比較的數(shù)組,可有多個。 |
function1 | 必需。比較鍵名的自定義函數(shù)。 |
function2 | 必需。比較值的自定義函數(shù)。 |
注釋:function1 指定的函數(shù)用于比較鍵名是否相等。function2 指定的函數(shù)用于比較鍵值是否相等。
例子
<?php function myfunction_key($v1,$v2) { if ($v1===$v2) { return 0; } return 1; } function myfunction_value($v1,$v2) { if ($v1===$v2) { return 0; } return 1; } $a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); $a2=array("a"=>"Cat","b"=>"Dog","c"=>"Fish"); print_r(array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value")); ?>
輸出:
Array ( [c] => Horse )