PHP获得数组的交集与差集

非常实用的获取数组交集差集总是忘记,下面这篇文章具备很好的参考学习 参考转载 作者:opfano_o  

1、获取数组相同元素

array_intersect()该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,

同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

<?php
$a1=array("a"=>"beijing","b"=>"shanghai","c"=>"shenzhen","d"=>"=jiangxi");
$a2=array("e"=>"beijing","f"=>"shanghai","g"=>"shenzhen"); 
$result=array_intersect($a1,$a2);

print_r($result);
?>
//
Array ([a] => beijing [b] =>shanghai [c] => shenzhen)

array_intersect_assoc() 函数用于比较两个(或更多个)数组的键名和键值,并返回交集,与 array_intersect() 函数 不同的是,本函数除了比较键值,

还比较键名。返回的数组中元素的键名保持不变。

<?php
$a1=array("a"=>"beijing","b"=>"shanghai","c"=>"shenzhen","d"=>"=jiangxi"); 
$a2=array("e"=>"beijing","f"=>"shanghai","g"=>"shenzhen",);
$result=array_intersect_assoc($a1,$a2);
print_r($result);
?>
//
Array
([a] => beijing [b] =>shanghai [c] => shenzhen)

2、获取数组中不同元素

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

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

<?php
$a1=array("a"=>"beijing","b"=>"shanghai","c"=>"shenzhen","d"=>"=jiangxi"); 
$a2=array("e"=>"beijing","f"=>"shanghai","g"=>"shenzhen",); 
$result=array_diff($a1,$a2);
print_r($result);
?>

//
Array([d] => jiangxi)

array_diff_assoc() 函数用于比较两个(或更多个)数组的键名和键值 ,并返回差集。

<?php
$a1=array("a"=>"beijing","b"=>"shanghai","c"=>"shenzhen","d"=>"=jiangxi"); 
$a2=array("e"=>"beijing","f"=>"shanghai","g"=>"shenzhen",); 
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>

//
Array([d] => jiangxi)

array_diff

posted @ 2020-08-27 12:01  路三千  阅读(545)  评论(0)    收藏  举报