Вывод данных из связанных таблиц php
Имеются 2 таблицы, категории и продукты.
Написал запрос, аналог full outer join. Вот сам запрос:
SELECT C.name, P.name FROM categories C
LEFT JOIN products P ON
C.id = P.id_cat
UNION ALL
SELECT C.name, P.name FROM categories C
RIGHT JOIN products P ON
C.id = P.id_cat
WHERE NOT EXISTS (SELECT 1 FROM categories C WHERE C.id = P.id_cat);
Но данные из таблицы категории дублируются. Вопрос в том, как в php избавится от дублирования этих значений чтобы получился массив такого вида:
['Холодильники' => ['Bosch kgn39', 'Atlant nf340']];
Ответы (1 шт):
Автор решения: ArchDemon
→ Ссылка
$query = [
['c_name' => 'Холодильники', 'p_name' => 'Bosch kgn39'],
['c_name' => 'Холодильники', 'p_name' => 'Atlant nf340'],
];
$result = [];
foreach ($query as $row) {
$result[$row['c_name']][] = $row['p_name'];
}
print_r($result);
Вывод
Array
(
[Холодильники] => Array
(
[0] => Bosch kgn39
[1] => Atlant nf340
)
)
