Fork me on github

php array_intersect() 和 array_diff() 函数

在PHP中,使用 array_intersect 求两个数组的交集比使用 array_diff 求同样两个数组的并集要快。

如果要求数组 $a 与数组 $b 的差集的个数,应该使用 count($a) - count(array_intersect($a, $b)),而不要用 count(array_diff($a, $b)); 

前面要比后者快,在大数组中更为明显。 


$array1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$array2=array("e"=>"red","f"=>"black","g"=>"purple");


$result1 = array_diff($array1, $array2);  //获取$array1中和$array2中不同元素 (差集)

$result2 = array_intersect($array1, $array2);  //获取$array1中和$array2中相同元素 (交集)
print_r($result1);

//

Array
(
[b] => green
[c] => blue
[d] => yellow
)

//

print_r($result2);

//

Array
(
[a] => red
)

//

posted @ 2016-02-19 19:37  Champion-水龙果  阅读(419)  评论(0编辑  收藏  举报
Champion-水龙果