array_udiff_assoc() 函數(shù)用于比較兩個(或更多個)數(shù)組的鍵名和鍵值,并返回差集。
array_udiff_assoc ( $array1, $array2 [, $array3 ..., $data_compare_func] );
此比較是通過用戶提供的回調(diào)函數(shù)來進行的。如果認為第一個參數(shù)小于,等于,或大于第二個參數(shù)時必須分別返回一個小于零,等于零,或大于零的整數(shù)。
它使用附加的索引檢查來計算數(shù)組的差,通過回調(diào)函數(shù)比較數(shù)據(jù),并返回一個包含array1中的所有值的數(shù)組,這些值沒有出現(xiàn)在任何其他參數(shù)中。
序號 | 參數(shù)及說明 |
---|---|
1 | array1(必填) 它指定一個數(shù)組。 |
2 | array2(必填) 它指定要與第一個數(shù)組進行比較的數(shù)組。 |
3 | array3(選填) 它指定要與第一個數(shù)組進行比較的數(shù)組。 |
4 | data_compare_func*(必填) 用戶自定義函數(shù)的名稱。 |
array_udiff_assoc() 返回一個數(shù)組,該數(shù)組包括了所有在 array1 中但是不在任何其它參數(shù)數(shù)組中的值。注意和 array_diff() 與 array_udiff() 不同的是鍵名也用于比較。數(shù)組數(shù)據(jù)的比較是用用戶提供的回調(diào)函數(shù)進行的。在此方面和 array_diff_assoc() 的行為正好相反,后者是用內(nèi)部函數(shù)進行比較的。
array_udiff_assoc使用自定義回調(diào)函數(shù)比較兩個數(shù)組的差集
<?php function call_back_function($v1,$v2) { if ($v1 === $v2) { return 0; } return 1; } $input = array("a"=>"orange","b"=>"orange","c"=>"mango"); $input1 = array("a"=>"orange","b"=>"mango","c"=>"orange"); print_r(array_udiff_assoc($input,$input1,"call_back_function")); ?>測試看看?/?
輸出結果:
Array ( [b] => orange [c] => mango )