我有两个数组,我想比较第一个和第二个数组。我有一个IF语句,它目前进行两项检查:
names
第一个数组(索引0-9)并将其与第二个数组的第一个name
进行比较(索引0)。继续做同样的事情,直到我们将第一个数组上的所有索引0-9与第二个数组的所有索引0-9进行比较。我尝试过使用in_array()
函数,但是只能使用单个变量。这样的事情in_array($firstArray[0], $secondArray)
有效。像这样:
if(mysqli_num_rows($result) > 0 && in_array($firstArray[0], $secondArray)){
exit("exiting now!");
}
else {
echo "continue to do stuff...";
}
然而,当我把整个数组放在inArray中时,它不会起作用。像这样:
in_array($firstArray, $secondArray)
我怎样才能做到这一点?
答案 0 :(得分:2)
如果您想知道它们是否相交,可以使用array_intersect,可以使用array_diff查看这两个数组是否有任何差异。
Disposable
示例:
if(mysqli_num_rows($result) > 0 && !array_diff($firstArray, $secondArray)){
exit("exiting now!");
} else {
echo "continue to do stuff...";
}
输出:
<?php
$array1 = array (1,2,3,4);
$array2 = array (3,2,1,5);
$array3 = array_diff($array1, $array2);
$array4 = array_intersect($array1, $array2);
echo "<pre>";
echo "Array 1\n ";
print_r($array1);
echo "Array 2\n ";
print_r($array2);
echo "Arrays Difference \n ";
print_r($array3);
echo "Arrays intersect \n ";
print_r($array4);
echo "</pre>";
?>
答案 1 :(得分:1)
我认为您正在寻找array_intersect(),它返回两个(或更多)数组中常见的值。 http://php.net/manual/en/function.array-intersect.php
它返回一个数组,但是如果它返回一个空数组,那么空数组就是假的。