检查两个PHP列表是否完全不相交

时间:2012-08-01 19:58:22

标签: php list

在PHP中,可以使用以下函数来确定一个列表(子项)是否是另一个列表(父项):

function issubset($child, $parent)
{
        $c = count($child);
        $valid = 1;
        for($i=0;$i<$c;$i++) {
            if(!in_array($child[$i], $parent)) {
                $valid = 0;
                return $valid;
            }
        }
    return $valid;
}

一个类似但相反的概念是两个列表不相交的想法,因此它们没有任何共同的元素。

例如,列表1,2,3,4和4,5,6,7不是不相交的,因为它们具有公共元素 4 ,但列表1,2,3和4,5,6是不相交的,因为它们没有共同的元素。

如何设计检查不相交的功能?

2 个答案:

答案 0 :(得分:4)

function disjoint($arr1, $arr2) {
   return (count(array_intersect($arr1, $arr2)) == 0);
}

function is_subset($parent, $possible_child) {
   return count(array_intersect($parent, $possible_child)) == count($possible_child);
}

答案 1 :(得分:1)

if (count(array_intersect($a, $b)) == 0) { /* do something */ }