@matthewstafford

Почему in_array в цикле видит только первый элемент?

Имеется массив, в котором хранится время в формате ЧЧ:ММ Array ( [0] => 16:30 [1] => 17:00 )

Если в цикле использовать функцию

in_array('16:30', $array);

То первый элемент он видит и выдает TRUE, но если попробовать проверить второй элемент массива, то он уже ничего не возвращает. Почему? И как исправить?

in_array('17:00', $array);
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
BoShurik
@BoShurik
Symfony developer
Проблема в том, что строка из которой создавался массив в конце содержит (скорее всего) перевод строки, т.о. второй (он же последний элемент) содержит непечатаемые символы, которые мешают сравнению.
$time = array_map('trim', $time);
решит проблему
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Добавьте третий аргумент в функцию
https://www.php.net/manual/ru/function.in-array.php
Третий аргумент true
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
а $array точно нигде в цикле не перезаписывается и никак не модифицируется?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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