2012-08-01 82 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); 
}