PHP array_uintersect() 函數(shù)
定義和用法
array_uintersect() 函數(shù)計算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)。
array_uintersect() 返回一個數(shù)組,該數(shù)組包含了所有在 array1 中也同時出現(xiàn)在所有其它參數(shù)數(shù)組中的值。數(shù)據(jù)(鍵值)比較是用回調(diào)函數(shù)進(jìn)行的。
語法
array_uintersect(array1,array2,array3...,function)
| 參數(shù) | 描述 |
|---|---|
| array1 | 必需。被比較的數(shù)組。 |
| array2 | 必需。用來做比較的數(shù)組。 |
| array3 | 可選。用來做比較的數(shù)組,可有多個。 |
| function | 必需。自定義函數(shù)的名稱。 |
說明
使用用戶自定義的回調(diào)函數(shù) function 來計算兩個或多個數(shù)組的交集(即在 array1 中存在同時也在其它任何數(shù)組中存在的所有數(shù)組元素),并返回結(jié)果數(shù)組。
只進(jìn)行鍵值的比較,不比較鍵名,如 "a"=>1 和 "b"=>1 這兩個元素視作相等的。
function 參數(shù)指定的函數(shù)用于比較元素是否相等。function 函數(shù)帶有兩個將進(jìn)行比較的參數(shù)。如果第一個參數(shù)小于第二個參數(shù),則函數(shù)返回一個負(fù)數(shù),如果兩個參數(shù)相等,則要返回 0,如果第一個參數(shù)大于第二個,則返回一個正數(shù)。
返回的數(shù)組中鍵名保持不變。
例子
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return 0;
}
if ($v1 > $v2) return 1;
{
return -1;
}
return 1;
}
$a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
$a2=array(1=>"Cat",2=>"Dog",3=>"Fish");
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
輸出:
Array ( [a] => Cat [b] => Dog )