Например, следующий код проверяет, существует ли значение «апельсин» в массиве $fruits:
$fruits = array("банан", "апельсин", "яблоко", "клубника");
if (in_array("апельсин", $fruits)) {
echo "Значение есть в массиве.";
} else {
echo "Значения нет в массиве.";
}
Приведенный выше код выведет «Значение есть в массиве.».
Он также принимает необязательный третий аргумент, $strict , для которого, если установлено значение true, функция также будет проверять типы значений. Поэтому, если вы ищете значение, равное 0, в массиве, который также содержит строку «0», использование строгой проверки вернет false, а нестрогая проверка вернет true.
$arr = array(0, "0");
if (in_array("0", $arr, true)) {
echo "0 найдено как строка";
}
elseif (in_array(0, $arr, true)) {
echo "0 найдено как integer";
}
Важно отметить, что если третий аргумент, $strict, не передается в функцию, по умолчанию он принимает значение false. Это означает, что функция будет выполнять свободное сравнение (==) вместо строгого сравнения (===). Это может привести к неожиданным результатам, особенно при поиске значений разных типов. Например, следующий код вернет true, если параметр $strict не передан, потому что «0» приблизительно равен 0:
$arr = array("1", "2", "3", "0");
if (in_array(0, $arr)) {
echo "0 найден в массиве";
}
Это выведет «0 найден в массиве».
Однако в определенных ситуациях это может вызвать проблемы, поэтому рекомендуется всегда передавать true в качестве третьего аргумента, чтобы функция выполняла строгое сравнение и возвращала ожидаемые результаты.
Таким образом, функция in_array() — это полезная функция в PHP для проверки наличия значения в массиве. Но опасно не передавать параметр $strict, чтобы избежать непредвиденных результатов, и рекомендуется всегда использовать параметр $strict для получения лучших результатов.
Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!
Написать коментарий