7

我有一个由 3 到 12 个值生成的数组,它根据帐户信息生成数组;

$result = $ad->user()->groups($user['username']);

我想检查这个数组的多个值(大约 4 或 5),如果其中有任何一个,请执行 if 中的内容,我可以通过以下方式轻松地为一个值执行此操作:

if (in_array("abc",$result)) {  $this->login_session($user); }

有没有一种简单的方法来检查这个数组中的多个值,而不是连续的 OR:

    if (in_array("abc",$result) || in_array("123",$result) || in_array("def",$result) || in_array("456",$result) ) {  
    $this->login_session($user); 
    }
4

2 回答 2

19

试试看这是否有帮助:

if(array_intersect($result, array('abc', '123', 'def'))) {
  $this->login_session($user);
}
于 2013-04-08T13:34:13.913 回答
2

这应该是你所追求的:

$a = array(1,2,3,4,5);

$b = array(6,8);

function is_in_array($needle, $haystack) {

    foreach ($needle as $stack) {

        if (in_array($stack, $haystack)) {
             return true;
        }
    }

    return false;
}

var_dump(is_in_array($b, $a));

基本上循环通过针头并在干草堆上运行它的数组。一旦找到东西就返回true,否则返回false。

于 2013-04-08T13:56:25.750 回答