PHP array_uintersect_uassoc() 函數(shù)
定義和用法
array_uintersect_uassoc 函數(shù)帶索引檢查計(jì)算數(shù)組的交集,用回調(diào)函數(shù)來比較數(shù)據(jù)和索引。
array_uintersect_uassoc() 返回一個(gè)數(shù)組,該數(shù)組包含了所有在 array1 中也同時(shí)出現(xiàn)在所有其它參數(shù)數(shù)組中的值。
注意,與 array_uintersect() 不同的是鍵名也要比較。鍵值和鍵名(索引)都是用回調(diào)函數(shù)比較的。
語法
array_uintersect_uassoc(array1,array2,array3...,function1,function2)
參數(shù) | 描述 |
---|---|
array1 | 必需。被比較的數(shù)組。 |
array2 | 必需。用來做比較的數(shù)組。 |
array3 | 可選。用來做比較的數(shù)組,可有多個(gè)。 |
function1 | 必需。比較鍵名的自定義函數(shù)。 |
function2 | 必需。比較鍵值的自定義函數(shù)。 |
說明
使用用戶自定義的回調(diào)函數(shù) function1 和 function2 來計(jì)算兩個(gè)或多個(gè)數(shù)組的交集(即在 array1 中存在,同時(shí)也在其它任何數(shù)組中存在的所有數(shù)組元素),并返回結(jié)果數(shù)組。
同時(shí)進(jìn)行鍵名和鍵值的比較,如 "a"=>1 和 "b"=>1 這兩個(gè)元素是不相等的。
function1 指定的函數(shù)用于比較鍵名是否相等。function2 指定的函數(shù)用于比較鍵值是否相等。這兩個(gè)函數(shù)都帶有兩個(gè)將進(jìn)行比較的參數(shù)。如果第一個(gè)參數(shù)小于第二個(gè)參數(shù),則函數(shù)返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等,則要返回 0,如果第一個(gè)參數(shù)大于第二個(gè),則返回一個(gè)正數(shù)。
返回的數(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"=>"Dog"); print_r(array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value")); ?>
輸出:
Array ( [a] => Cat [b] => Dog )