墨裔 发表于 2021-4-8 11:01:43

PHP判断一个数组是另一个数组子集的方法详解

需求

最少的时间复杂度判断$a数组是否是$b数组的子集


// 快速的判断$a数组是否是$b数组的子集
$a = array(135,138);
$b = array(135,138,137);



array_diff 计算差集 PHP 4.0.1 以上可用


$c = array_diff($a, $b);
print_r($c);
$flag = empty($c)?1 : 0;
if ($flag) {
echo "Yes";
}else {
echo "No";
}


array_intersect 计算交集 (推荐) PHP 4.0.1 以上可用

为啥推荐这个函数 , 是因为这个函数计算完成后可以用IF来判断是否与原来数组相等;


if ($a == array_intersect($a, $b)) {
$flag = 1;
}else {
$flag = 0;
}
if ($flag) {
echo "Yes";//完全包含
}else {
echo "No";//不完全包含
}
页: [1]
查看完整版本: PHP判断一个数组是另一个数组子集的方法详解