统计两个数组中交集的个数是否相等 谢谢
====================================
补充:
$a=array('1','2');
$b=array('1','2','3','2');
再数组a中1和2分别出现了一次
但在数组b中1出现一次,2出现两次
交集是1和2 我现在想知道出现的次数是否相等
统计两个数组中交集的个数是否相等 谢谢
====================================
补充:
$a=array('1','2');
$b=array('1','2','3','2');
再数组a中1和2分别出现了一次
但在数组b中1出现一次,2出现两次
交集是1和2 我现在想知道出现的次数是否相等
既然是交集,那就应该是相等的了,两个数组都有的元素才叫交集。集合概念你没弄懂,集合是不允许有重复元素的。
集合的基础概念理解有偏差,集合中元素是互斥的,所以都只会出现一次。相应的,交集的元素在各集合都只会出现一次。
看你举例的需求,将算出来的交集遍历一下进行判断就好了。
<code>$arr1 = [1,2]; $arr2 = [1,2,3,2]; $intersect = array_intersect($arr1, $arr2); $result = array(); foreach ($intersect as $item) { $result[$item] = array('arr1' => 0, 'arr2' => 0); } foreach ($arr1 as $item) { if (isset($result[$item])) { $result[$item]['arr1'] += 1; } } foreach ($arr2 as $item) { if (isset($result[$item])) { $result[$item]['arr2'] += 1; } }</code>