Подскажите, правильно ли я сделал или же можно как-то грамотно уменьшить код?
3 задача на этой странице http://code.mu/ru/php/book/prime/database/organization/linking-via-table/
<meta charset="utf-8">
<?php
$host = 'localhost'; // имя хоста
$user = 'root'; // имя пользователя
$pass = ''; // пароль
$name = 'test'; // имя базы данных
$link = mysqli_connect($host, $user, $pass, $name);
mysqli_query($link, "SET NAMES 'utf8'");
$query = "SELECT product.name as product_name, category.name as category_name
FROM
product
LEFT JOIN product_category ON product_category.product_id=product.id
LEFT JOIN category ON product_category.category_id=category.id";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row);
$res = [];
foreach ($data as $elem) {
$res[$elem['product_name']][] = $elem['category_name'];
}
var_dump($res);
?><ul><?
foreach ($res as $key => $item) { echo '<li>'.$key.':';
foreach ($item as $slots) {
echo $slots.' ';
}
}
?></ul>
Код полностью работает, просто стоило ли два раза вызывать foreach в конце для формирования списка или есть более упрощенная система?


