dzheka3d
@dzheka3d

Как найти несколько чисел в массиве?

Всем привет! Нужно проверить есть ли хотя бы одно значение из заданных в массиве... Ну ум приходит:
if(in_array(23, $arr) || in_array(213, $arr) || in_array(34, $arr)){
//....
}

Может есть более красивый способ?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 2
@McBernar
Если у вас постоянные значения, то почему нет?
Если они могут меняться — соберите эти значения так же в массив и сравнивайте через diff или intersect.
Ответ написан
Комментировать
Еще вариант:
if (!empty(array_intersect( [23, 213, 34], $arr))) { ...}

В некоторых случаях будет иметь смысл сделать отдельную функцию:
function any_in_array($array_needle, $array_haystack)
{
    foreach($array_needle as $needle){
        if(in_array($needle,$array_haystack){
            return true;
        }
    }
    return false;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы