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