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.