Вывод значений ассоциативного массива

251
19 декабря 2016, 19:38

Для вывода значений массива я использую цикл 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/>';
}

Но, фильмы идут в разнобой и типы фильмов перемешиваются. Раньше я делал три цикла, каждый из которых выводил определенный тип. Но массив довольно громоздкий и мне хочется переделать это по человечески, чтоб не проходить по массиву три раза. Подскажите как правильно это реализовать, пожалуйста.

Answer 1

Чтобы не гонять основной массив три раза, я бы предложил при первом проходе выводить то что нужно выводить именно при первом проходе, а индексы остальных записей сохранять в дополнительный массивы (для второго и третьего прохода соответственно).

А потом уже пройтись по этим вспомогательным массивам и вывести записи для них.

Как вариант - изучить АПИ откуда берутся данные - возможно там есть функционал сортировки данных.

Ну или подумать и найти признак, по кторому можно отсортировать исходный массив. Думаю что функция uasort может помочь.

READ ALSO
Преобразование php-&gt;word-&gt;jpg

Преобразование php->word->jpg

Мне необходимо часто делать много почти одинаковых заявокОтправлять надо в jpg

209
Подключение к локальному IP извне через php и js

Подключение к локальному IP извне через php и js

В наличии: 1Данные для подключения к внешнему серверу (IP, login, pass) 2

186
парсинг селекторов phpQuery

парсинг селекторов phpQuery

Оригинал кода

254
Eloquent метод save не работает

Eloquent метод save не работает

На удаленном сервере не работает метод saveМетодом дебага, обнаружил, что в модели не создается идентификатор

168