Проверяет, содержится ли значение в массиве

# in_array

(PHP 4, PHP 5, PHP 7, PHP 8)

in_array — Проверяет, содержится ли значение в массиве

### Описание

function in_array(mixed `$needle`, array `$haystack`, bool `$strict` = `false`): bool

Функция выполняет поиск значения `needle` в массиве `haystack`. Функция сравнивает значения в нестрогом режиме, если только строгий режим не установили через параметр `strict`.

### Список параметров

`needle`

  Искомое значение.

  > Замечание:

  > Функция сравнивает значения с учётом регистра, если значение `needle` — строка.

`haystack`

  Массив.

`strict`

  Функция in_array() также сопоставит типы значения `needle` со значениями в массиве `haystack`, если для третьего параметра `strict` установили значение `true`.

  > Замечание:

  > До PHP 8.0.0 в нестрогом режиме функция считала значение параметра `needle` частью массива, если искомое значение принадлежало типу `string`, а массив содержал целочисленное значение `0`, и наоборот. Такое «соответствие» давало нежелательный результат. Аналогичные пограничные случаи встречаются и для других типов. Лучше предпочесть и установить через флаг `strict` строгий режим, чтобы избежать неожиданного поведения в случаях, когда невозможно достоверно установить типы значений.

### Возвращаемые значения

Функция возвращает `true`, если нашла значение `needle` в массиве, иначе `false`.

### Примеры

Пример #1 Пример использования функции in_array()

    <?php

    $os = array("Mac", "NT", "Irix", "Linux");

    if (in_array("Irix", $os)) {
        echo "Функция нашла значение 'Irix'";
    }

    if (in_array("mac", $os)) {
        echo "Функция нашла значение 'mac'";
    }

    ?>

Функция in_array() не найдёт второго совпадения, потому что чувствительна к регистру, поэтому приведённая программа выведет:

    Функция нашла значение 'Irix'

Пример #2 Пример проверки значения функцией in_array() с параметром strict

    <?php

    $a = array('1.10', 12.4, 1.13);

    if (in_array('12.4', $a, true)) {
        echo "Функция нашла значение '12.4' при строгой проверке\n";
    }

    if (in_array(1.13, $a, true)) {
        echo "Функция нашла значение '1.13' при строгой проверке\n";
    }

    ?>

Результат выполнения приведённого примера:

    Функция нашла значение '1.13' при строгой проверке

Пример #3 Пример использования функции in_array() с массивом в качестве аргумента needle

    <?php

    $a = array(array('p', 'h'), array('p', 'r'), 'o');

    if (in_array(array('p', 'h'), $a)) {
        echo "Функция нашла значение 'ph'\n";
    }

    if (in_array(array('f', 'i'), $a)) {
        echo "Функция нашла значение 'fi'\n";
    }

    if (in_array('o', $a)) {
        echo "Функция нашла значение 'o'\n";
    }

    ?>

Результат выполнения приведённого примера:

    Функция нашла значение 'ph'
    Функция нашла значение 'o'

### Смотрите также

- array_search() - Ищет значение в массиве, и если находит, возвращает ключ первого найденного элемента
- isset() - Определяет, объявили ли переменную и отличается ли её значение от null
- array_key_exists() - Проверяет, содержит ли массив ключ или индекс

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open