@hrustbb2

Как преобразовать двумерный массив возвращаемый MySQL?

Коллеги, для примера, имеется БД со следующими таблицами city, house со следующими полями:
city:
-id
-name

house:
-id
-city_id
-heigh
-width


Запросив из базы информацию обо всех городах с домами в них, сджойнив две таблицы, получим на выходе плоский, двумерный массив.

Существуют ли более-менее универсальные средства для того чтобы получить из подобного двумерного массива массив вида:

[
  id => 1,
  name => city1,
  house => [
    id => 1,
    heigh => 100,
    width => 200,
  ]
],
[
  id => 1,
  name => city1,
  house => [
    id => 2,
    heigh => 200,
    width => 300,
  ]
]


То есть массив повторяющий структуру запрашиваемых данных?

UPD: Под более-менее универсальным средством я подразумеваю, что не всегда заранее известно количество вложенных данных и глубина вложенности. То есть на входе некоторая конфигурация и плоский массив, на выходе массив с определенной структурой.
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 3
@KingstonKMS
full-stack web developer
У вас один дом в городе?
Всё же house должен быть массивом.
Вам придётся использовать цикл. Поэтому лучше сделать так:
1. Выборка городов
2. По каждому городу делаете выборку домов, создаёте массив с полями города и добавляете в него house с выборкой домов, и итоговый массив города добавляете в общий массив.
Ответ написан
yellow79
@yellow79
Senior Software Engineer
Как вариант, воспользоваться группировкой и правильной комбинацией функций типа json_arrayagg и json_object
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
ImageSpark Санкт-Петербург
от 60 000 ₽
02 апр. 2020, в 09:54
1000 руб./за проект
02 апр. 2020, в 09:18
1000 руб./за проект
02 апр. 2020, в 08:52
1200 руб./в час