Задать вопрос
@matthewstafford

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

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

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

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

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

in_array('17:00', $array);
  • Вопрос задан
  • 320 просмотров
Подписаться 2 Простой 10 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 точно нигде в цикле не перезаписывается и никак не модифицируется?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽