猿问

如何检查模型数组的内容是否包含在具有重复项且没有特定顺序的另一个数组的内容中

我正在寻找一种方法来确认 modelArray 的内容是否存在于 array1-3 中。我不是在检查订单,只是如果 modelArray 的内容包含在测试的数组中,包括考虑重复项(modelArray 中的两个 2,因此如果被测试的数组至少有两个 2,则应该返回 true)。


帮助将不胜感激。我只是想学习,也许是想看看我是否可以简单地测试一下,看看购物车是否包含捆绑包所需的物品(一个捆绑包需要两个物品才能合格,因此在modelArray中有重复的2)。


我查看了stackoverflow并尝试了array_intersect()和array_diff()。但是,我需要以下自定义用例的帮助。



$modelArray = array(1,2,2,3,4); // the two 2's are intentional


$array1 = array(1,2,3,4); // should return False


$array2 = array(1,2,3,4,2,5,6,7,8); //should return True


$array3 = array(1,4,9,5); // should return False


function containsModel () {


//return if True or False

}


?>````


呼啦一阵风
浏览 97回答 1
1回答

至尊宝的传说

如果数组的差异不是空数组,您可以遍历数组并使用array_diff检查:function containsModel ($array) {    $items = array(    array(1,2,3,4),    array(1,2,3,4,2,5,6,7,8),    array(1,4,9,5)    );    foreach ($items as $item) {        if (!empty(array_diff($array, $item))) {            return false;        }    }    return true;}$modelArray = array(1,2,2,3,4);$res = containsModel($modelArray);var_dump($res);
随时随地看视频慕课网APP
我要回答