(PHP 4, PHP 5, PHP 7, PHP 8)
in_array — Проверяет, существует ли значение в массиве
Функция выполняет поиск значения needle
в массиве haystack
.
Функция сравнивает значения в нестрогом режиме, если только строгий режим
не установили через параметр strict
.
needle
Искомое значение.
Замечание:
Функция сравнивает значения с учётом регистра, если значение
needle
— строка.
haystack
Массив.
strict
Функция in_array() также сопоставит типы
значения needle
со значениями в массиве haystack
,
если для третьего параметра strict
установили значение true
.
Замечание:
До PHP 8.0.0 в нестрогом режиме функция считала значение параметра
needle
частью массива, если искомое значение принадлежало типуstring
, а массив содержал целочисленное значение0
, и наоборот. Такое «соответствие» давало нежелательный результат. Аналогичные пограничные случаи встречаются и для других типов. Лучше предпочесть и установить через флагstrict
строгий режим, чтобы избежать неожиданного поведения в случаях, когда невозможно достоверно установить типы значений.
Пример #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'