У меня есть две таблицы, первая из которых выглядит примерно так:
customer
----------
id
name
age
sex
И еще одна таблица, которая выглядит так:
phone
---------
id
customer_id
number
ext
phone_type
Если я хочу получить клиента со всеми его телефонными номерами, я присоединяюсь и могу получить данные, которые выглядят следующим образом:
id name age sex number ext phone_type
---------------------------------------------------
1 Bob 36 M 555-4343 3 office
1 Bob 36 M 555-1111 mobile
2 Sue 23 F 123-4444 42 office
2 Sue 23 F 123-2222 home
2 Sue 23 F 123-1111 mobile
Используя PHP, я хотел бы получить эти строки в более удобной структуре данных. Вместо того, чтобы иметь ассоциативный массив с 5 строками, я хотел бы иметь ассоциативный массив с 2 строками, один для Боба и один для Сью. Затем в каждой строке будет поле под названием «телефон», содержащее массив со всеми телефонными номерами клиента.
Я просмотрел все режимы выборки, которые предлагает PDO, и не заметил ничего, что могло бы помочь. Единственное, о чем я могу подумать, это перебирать каждую строку в возвращаемом наборе данных и создавать новый массив. Если у меня есть большой возвращенный набор данных, кажется, что он может стать действительно неэффективным. Существует ли метод извлечения PDO или эффективный способ решения этой проблемы?