@vadimstroganov

Как сгруппировать записи по году?

Добрый день!
Имеется много событий и год их происхождения, например:
2013 - событие 1
2013 - событие 2
2013 - событие 3
2012 - событие 4
2011 - событие 5

Никак не получается сгруппировать так, чтобы на экран вывести их в тако виде:
2013:
- событие 1
- событие 2
- событие 3
2012:
- событие 4
2011:
- событие 5

Из БД забираю данные и сортирую по году в порядке убывания
Буду благодарен за любую помощь!

Все получилось, сделал так:
<?
  $j = 0;
  if ($i == 0) {
    $tempYear = $year;
    echo $tempYear;
  }
  if (($i - $j == 1) && ($i != 0) ) {
    if ($tempYear != $year) {
      $tempYear = $year;
      echo $tempYear;
    }
    $j++;
  }
?>
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@vadimstroganov Автор вопроса
<?
  $j = 0;
  if ($i == 0) {
    $tempYear = $year;
    echo $tempYear;
  }
  if (($i - $j == 1) && ($i != 0) ) {
    if ($tempYear != $year) {
      $tempYear = $year;
      echo $tempYear;
    }
    $j++;
  }
?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Remdev
$year = 0;
while($row = $db->fetch()){
    if($year!=$row['year']){
        $year = $row['year'];
        echo $year;
    }
    echo $row['event'];
}


Как то так наверное
Ответ написан
Комментировать
kompi
@kompi
nullstack devoops
Что-то вроде этого:
$arr = [];
while($row = $db->fetch())
  $arr[$row['year']][] = $row['value'];
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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