0

在 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 是不相交的,因为它们有没有共同的元素。

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

4

2 回答 2

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);
}
于 2012-08-01T20:00:59.750 回答
1

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

于 2012-08-01T20:01:14.293 回答