返回array_intersect为布尔值

时间:2019-02-19 12:00:23

标签: php

我有两个数组,我需要检查它们是否具有相同的值,并且返回值必须为布尔值。 我可以像这样使用array_intersect()还是有更好的方法?

$result = (bool) array_intersect($array1, $array2);

谢谢。

4 个答案:

答案 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"; 
  }