测试一个数组是否是另一个数组的子集

2022-08-30 19:22:03

如何确定一个数组是否是另一个数组的子集(第一个数组中的所有元素都存在于第二个数组中)?

 $s1 = "string1>string2>string3>string4>string5>string6>";
 $arr1 = explode(">", $s1);
 $s2 = "string1>string4>string5";
 $arr2 = explode(">", $s2);

 $isSubset = /* ??? */

答案 1
if (array_intersect($array1, $array2) == $array1) {
    // $array1 is a subset of $array2
}

答案 2

简单:使用数组减法。

在数组减法中,您将知道一个数组是否是另一个数组的子集。

例:

if (!array_diff($array1, $array2)) {
    // $array1 is a subset of $array2
}

参考资料: array_diff

您也可以使用。array_intersect

试试看