@illy_Chuchelo

Как должен выглядеть цикл для вывода элементов?

Есть таблицы в БД
lists:
id
title

tasks:
id
name
list_id

На странице нужно вывести в таком виде
List 1:
Tesk 1
Tesk 2

List 2:
Tesk 3
Tesk 4

Выполняю запрос в БД через связь
select * from lists join tasks on lists.id = tasks.list_id

Получаю коллекцию массивов в виде:
[0] => Array
        (
            [id] => 1
            [name] => Tesk 1 
            [list_id] => 1           
            [title] => List 1           
        )

    [1] => Array
        (
            [id] => 1
            [name] => Tesk 2
            [list_id] => 1
            [title] => List 1            
        )

    [2] => Array
        (
            [id] => 2
            [name] => Tesk 3
            [list_id] => 2           
            [title] => List 2            
        )

    [3] => Array
        (
            [id] => 2
            [name] => Tesk 4
            [list_id] => 2           
            [title] => List 2           
        )


Как через цикл вывести на странице элементы в желанном виде?
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
$groups = [];

foreach ($data as $item) {
  $groups[$item['title']][] = $item;
}

echo implode('', array_map(function($group, $title) {
  $items = implode('', array_map(function($item) {
    $name = $item['name'];
    return "<div>$name</div>";
  }, $group));

  return "<h4>$title:</h4>$items";
}, $groups, array_keys($groups)));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы