PHP array_intersect()直到第一次匹配

时间:2013-07-25 17:00:53

标签: php arrays loops array-intersect

我有2个数组要比较,并找出至少有一个共同的值

这很好用:

$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 4, 5, 6);
if (array_intersect($arr1, $arr2)) {
    // good, at least one match found
}

然而,问题是表现。在找到第一个匹配项后继续通过数组循环没有意义。是否有本机PHP函数或实现此功能的有用代码片段?

foreach()in_array()的组合可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

这个怎么样?

foreach ($arr1 as $key => $val) {
    if (in_array($val, $arr2)){
        // do something, maybe return so you wouldn't need break
        break;
    }
}

答案 1 :(得分:1)

只比较第一个值?

$arr1 = array(1, 2, 3, 4, 5); 
$arr2 = array(2, 3, 4, 5, 6); 
if (array_intersect($arr1, $arr2)[0]) { 
    // good, at least one match found 
}