php - 两个数组中交集的个数是否相等
PHP中文网
PHP中文网 2017-04-10 18:11:22
[PHP讨论组]

统计两个数组中交集的个数是否相等 谢谢

====================================
补充:
$a=array('1','2');
$b=array('1','2','3','2');

再数组a中1和2分别出现了一次
但在数组b中1出现一次,2出现两次

交集是1和2 我现在想知道出现的次数是否相等

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
ringa_lee
$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;
    }
}
PHP中文网

既然是交集,那就应该是相等的了,两个数组都有的元素才叫交集。集合概念你没弄懂,集合是不允许有重复元素的。

阿神

集合的基础概念理解有偏差,集合中元素是互斥的,所以都只会出现一次。相应的,交集的元素在各集合都只会出现一次。

看你举例的需求,将算出来的交集遍历一下进行判断就好了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号