7

3 ~ 12 個の値で生成される配列があります。これは、アカウント情報から配列を生成します。

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

この配列の複数の値 (約 4 または 5) をチェックしたいのですが、それらのいずれかが含まれている場合は、if の内部にあることを実行します。1 つの値に対しては、次の方法で簡単に実行できます。

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

連続した OR 以外の複数の値について、この 1 つの配列をチェックする簡単な方法はありますか。

    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 に答える