当前位置:编程学习 > php >>

php 计算两数组交集两个函数

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

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


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

array_intersect() 函数返回两个或多个数组的交集数组。

结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。

注释:仅有值用于比较。

语法
array_intersect(array1,array2,array3...)参数 描述
array1 必需。与其他数组进行比较的第一个数组。
array2 必需。与第一个数组进行比较的数组。
array3 可选。与第一个数组进行比较的数组。可以有多个。
例子

<?php教程
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_intersect($a1,$a2));
?>输出:

Array ( [1] => Dog [2] => Horse )


array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。

在返回的数组中,键名保持不变。

语法
array_diff(array1,array2,array3...)参数 描述
array1 必需。与其他数组进行比较的第一个数组。
array2 必需。与第一个数组进行比较的数组。
array3 可选。与第一个数组进行比较的数组。
提示和注释
提示:可用一个或任意多个数组与第一个数组进行比较。

注释:仅有值用于比较。

例子
<?php
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_diff($a1,$a2));
?>输出:

Array ( [0] => Cat )

补充:Php教程,Php函数 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,