如果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}}
提前谢谢!
答案 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;
}