2012-08-01 78 views
0

在PHP中,可以使用下面的函数来确定是否有一个列表(儿童)是另一个的子集(父):检查是否两个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不是不相交的,因为它们具有公共元素,但列表1,2,3和4,5, 6是不相交的,因为它们没有共同的要素。

如何设计一个检查不相交的函数?

回答

1

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

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); 
}