做一个PHP in_array()但是用另一个数组的针()

时间:2011-05-06 11:20:11

标签: php

如果in_array()中至少有一个$foo位于$bar数组中,我需要$foo = array("ESD", "RED", "IOP"); $bar = array("IOD", "MNP", "JDE", "RED"); if(in_array($foo, $bar)) // true because RED is in $foo and in $bar 之类的内容进行搜索,例如:

{{1}}

提前谢谢!

3 个答案:

答案 0 :(得分:18)

我想你想要array_intersect()

$matches = array_intersect($foo, $bar);

$matches将返回两个数组中所有项目的数组,因此您可以:

  • 检查是否与empty($matches)
  • 不匹配
  • 阅读count($matches)
  • 的匹配数
  • 如果需要,请阅读交叉点的值

参考:http://php.net/manual/en/function.array-intersect.php

您的案例示例:

$foo = array("ESD", "RED", "IOP");
$bar = array("IOD", "MNP", "JDE", "RED");

// Just cast to boolean
if ((bool) array_intersect($foo, $bar)) // true because RED is in $foo and in $bar

答案 1 :(得分:1)

最好是创建自己的函数,如果它总是大约2个数组;

function in_both_arrays($key, $arrone, $arrtwo)
{
  return (in_array($key, $arrone) && in_array($key, $arrtwo)) ? true : false ;
}

答案 2 :(得分:0)

function in_arrays($needles, $haystack)
{
    foreach ((array) $needles as $needle)
    {
        if (in_array($needle, $haystack) === true)
        {
            return true;
        }
    }

    return false;
}