PHP if в массиве для нескольких значений

у меня есть массив, который генерируется где-то между 3 и 12 значениями, он генерирует массив из информации об учетной записи;

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

Я хочу проверить этот массив на несколько значений (около 4 или 5), и если какой-либо из них находится в нем, сделайте то, что внутри if, я могу сделать это для одного значения довольно легко через:

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

есть ли простой способ проверить этот массив для нескольких значений в нем, кроме последовательных ORs:

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

2 ответов


попробуйте и посмотрите, полезно ли это:

if(array_intersect($result, array('abc', '123', 'def'))) {
  $this->login_session($user);
}

Это должно быть то, что вы после:

$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.