『壹』 PHP兩個數組的交集
你這個搞得是不是太復雜了。請使用array_diff比較數組,返回不同,再計算交集。
『貳』 PHP高手請進。把一個三維數組里的所有二維數組取出來比較,取交集...
//foreach三維,一步步算下去就行
$arr = array(
array('a'=>'1','b'=>'2','c'=>'5','d'=>'56'),
array('a'=>'1','c'=>'5','d'=>'56'),
array('a'=>'1','c'=>'5','e'=>'44'),
array('a'=>'1','c'=>'5','d'=>'56','f'=>'d')
);
if (count($arr)>0)
{
foreach($arr as $key=>$val)
{
if ($key==0)//第一個先取出來
{
$tmp_arr = $val;
}
else
{
$tmp_arr = array_intersect_assoc($tmp_arr,$val);
}
}
}
print_r($tmp_arr);
『叄』 計算數組的交集,用回調函數比較數據
array_uintersect
(PHP 5, PHP 7)
array_uintersect — 計算數組的交集,用回調函數比較數據
說明
array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func ) : array
array_uintersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。數據比較是用回調函數進行的。 此比較是通過用戶提供的回調函數來進行的。如果認為第一個參數小於,等於,或大於第二個參數時必須分別返回一個小於零,等於零,或大於零的整數。
參數
array1
第一個數組。
array2
第二個數組。
value_compare_func
在第一個參數小於,等於或大於第二個參數時,該比較函數必須相應地返回一個小於,等於或大於 0 的整數。
callback ( mixed $a, mixed $b ) : int
返回值
Returns an array containing all the values of array1 that are present in all the arguments.
範例
示例 #1 array_uintersect() 例子
"green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>