如果两个数组中的任何元素匹配,则返回true?

时间:2016-12-18 04:57:02

标签: php

我有两个数组,一个是我的define数组,另一个是数据库中的进程。有没有正确的方法来比较这些数组?

来自数据库:

$user_type = [0 => "public" 1 => "10x413" 2 => "12x432"]

定义数组:

$specificUser = ['10x410','10x411','10x412','10x413','10x414'] 

如果任何元素匹配,则返回true,就像php in_array()函数一样。

2 个答案:

答案 0 :(得分:1)

只需循环并检查,就像使用in_array()获取匹配的值一样:

foreach($specificUser as $value) {
    if(in_array($value, $user_type)) {
        echo $value;
        //break; to stop checking, a match was found, or not to continue and see more
    }
}

或者只测试任何比赛:

if(array_intersect($specificUser, $user_type)) {
    // it's true :-)
}

答案 1 :(得分:0)

我确信之前已经问过并回答过,但这是一个解决方案:

array() !== array_intersect($user_types, $specific_users);

注意:使用严格比较来比较数组元素,因此只有当两个元素的类型相同时,才认为它们是匹配的。