我正在寻找像array_intersect这样的函数,但是只有当数组1中的所有值都包含在数组2中时,它才会返回TRUE,而不是返回2个数组中存在的值。
例如:
$first_array = array(0=>1, 1=>4, 2=>8)
$second_array = array(0=>9, 1=>8, 2=>7, 3=>1, 4=>3, 5=>4)
如果比较两个数组,$ first_array中的所有值都存在于$ second_array中,即1,4和8,因此该函数应返回true。那里有功能吗?
谢谢。
答案 0 :(得分:2)
function compare($first_array, $second_array){
if(empty(array_diff($first_array,$second_array))){
return true;
}else{
return false;
}
}
试试这个。任何人都会看到任何错误,请编辑它。
答案 1 :(得分:0)
这是解决方案
如果您不想使用array_diff()
<?php
$a = array("c","b","a");
$b = array("a","b","c");
if(ArrayCompare($a , $b)){
echo "100%";
} else {
echo "NOT";
}
function ArrayCompare($array1 , $array2) {
$c = 0;
foreach($array1 as $v) {
if(in_array($v , $array2)) {
$c++;
}
}
if(count($array2) == $c) {
return true;
} else {
return false;
}
}
?>
答案 2 :(得分:0)
<?php
function compare($arr1,$arr2)
{
$arr3=Array();
$k=0;
for($i=0;$i<count($arr1);$i++)
{
if(in_array($arr1[$i],$arr2))
$arr3[$k]=$arr1[$i];
$k++
}
if(count($arr3)==count($arr1))
return true;
else
return false;
}
?>