Для вывода значений массива я использую цикл foreach. В основном массиве содержатся массивы фильмов которые содержат данные о фильмах. Отталкиваясь от даты выхода и даты первого показа я вывожу фильмы с определенными метками. Вот так:
$isShowBeforePremiere = $firstSeansDate < $releaseDate ? true : false;
$isPpresale = $firstSeansDate > $nextThursday ? true : false;
$isUsual = $nowDate === $firstSeansDate ? true : false;
if($isShowBeforePremiere) {
echo 'это допремьера <br/>';
}
if($isPpresale) {
echo 'это предпродажа <br/>';
}
if($isUsual) {
echo 'это обычный фильм <br/>';
}
Но, фильмы идут в разнобой и типы фильмов перемешиваются. Раньше я делал три цикла, каждый из которых выводил определенный тип. Но массив довольно громоздкий и мне хочется переделать это по человечески, чтоб не проходить по массиву три раза. Подскажите как правильно это реализовать, пожалуйста.
Чтобы не гонять основной массив три раза, я бы предложил при первом проходе выводить то что нужно выводить именно при первом проходе, а индексы остальных записей сохранять в дополнительный массивы (для второго и третьего прохода соответственно).
А потом уже пройтись по этим вспомогательным массивам и вывести записи для них.
Как вариант - изучить АПИ откуда берутся данные - возможно там есть функционал сортировки данных.
Ну или подумать и найти признак, по кторому можно отсортировать исходный массив. Думаю что функция uasort
может помочь.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне необходимо часто делать много почти одинаковых заявокОтправлять надо в jpg
В наличии: 1Данные для подключения к внешнему серверу (IP, login, pass) 2
На удаленном сервере не работает метод saveМетодом дебага, обнаружил, что в модели не создается идентификатор