in_array

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

in_arrayПроверяет, существует ли значение в массиве

Описание

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() - Проверяет, существует ли в массиве заданный ключ или индекс