php检查数组是否是另一个数组的一部分
如果我有:php检查数组是否是另一个数组的一部分,php,arrays,Php,Arrays,如果我有: $hold = array(1, 1, 4); // this will be true $allArr = array(1, 1, 3, 4, 5); $containsHold = count(array_intersect($hold, $allArr)) == count($hold); $containhold是正确的,但如果我有下一个: $hold = array(1, 1, 1); // this will be false but it is true $allAr
$hold = array(1, 1, 4); // this will be true
$allArr = array(1, 1, 3, 4, 5);
$containsHold = count(array_intersect($hold, $allArr)) == count($hold);
$containhold是正确的,但如果我有下一个:
$hold = array(1, 1, 1); // this will be false but it is true
$allArr = array(1, 1, 3, 4, 5);
$containsHold = count(array_intersect($hold, $allArr)) == count($hold);
这个返回值为true,但我需要为false,因为$hold包含三个1如果我的uderstand正确,您应该计算每个数组的值 然后比较数值和计数……:
function arrayContainArray($array, $array1){
$c = array_count_values($array);
$c1 = array_count_values($array1);
foreach($c as $k=>$n){
if(!isset($c1[$k]) || $c1[$k]<$n){ return false; }
}
return true;
}
$containsHold = arrayContainArray($hold, $allArr);
函数arrayContainArray($array,$array1){
$c=数组\计数\值($array);
$c1=数组计数值($array1);
foreach($c为$k=>$n){
如果(!isset($c1[$k])| |$c1[$k]首先阅读php数组,然后再问这个问题。您仍然在array_intersect(php数组函数)文档中得到了答案。如果无法理解,请尝试此链接:-这不是我示例的答案。请尝试$hold=array(1,1);此with array_intersect返回true!