我有两个数组,我需要检查它们是否具有相同的值,并且返回值必须为布尔值。
我可以像这样使用array_intersect()
还是有更好的方法?
$result = (bool) array_intersect($array1, $array2);
谢谢。
答案 0 :(得分:2)
只需检查array_intersect($array1, $array2)
$result = count(array_intersect($array1, $array2)) > 0;
答案 1 :(得分:2)
是的,您的代码可以正常工作。转换为布尔值时,将空数组视为false,而将其中包含任何元素的数组(即,其中count($array) > 0
的元素视为真)。来自manual:
转换为布尔值时,以下值为 FALSE :
...
-零元素数组
...
其他所有值均视为 TRUE (包括任何资源和NAN)。
答案 2 :(得分:1)
计数相交的值:
$result = count(array_intersect($array1, $array2)) !== 0;
答案 3 :(得分:0)
如果有一个值
$marks = array(100, 65, 70, 87);
$sparks = array(100, 40, 20, 200);
if (in_array($sparks[0], $marks)) // can make this dynamic too, returns bool
{
echo "found";
}
else
{
echo "not found";
}