У меня есть массив, который содержит товары и соответствующие им категории. <br/> <pre><code class="php">$goods = [ 'ASUS TUF' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'ARDOR GAMING NEO' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'MSI Katana' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'HUAWEI MateBook D 16 2024 MCLF-X' => ['Ноутбуки для работы', 'Ультрабуки'], 'Samsung Book3 Pro 360 NP960' => ['Ноутбуки для работы', 'Ультрабуки', 'Ноутбуки-трансформеры'] ];</code></pre> <br/> <br/> Мне необходимо вывести данные из этого массива в формате маркированного списка, как показано ниже: <br/> <pre><code class="html"><ul> <li>ASUS TUF: Игровые ноутбуки, Ноутбуки для работы</li> <li>ARDOR GAMING NEO: Игровые ноутбуки, Ноутбуки для работы</li> </ul></code></pre> <br/> <br/> Я попробовал следующий код: <br/> <pre><code class="php">echo '<ul>'; foreach ($goods as $name => $categories) { foreach ($categories as $category) { echo "<li>$name: $category</li>"; } } echo '</ul>';</code></pre> <br/> <br/> Однако полученный результат отличается от желаемого. <br/> <br/> Как я могу исправить код, чтобы получить нужный формат?
Ваш код содержит небольшую ошибку, так как он создает новый элемент списка (`<li>`) для каждой категории в массиве, вместо того чтобы выводить все категории в одном элементе списка. Вам нужно объединить категории в строку перед выводом. Вы можете использовать функцию `implode()` для этого. Вот исправленный код: ```php echo '<ul>'; foreach ($goods as $name => $categories) { // Объединяем категории в строку, разделяя их запятыми и пробелами $categoriesList = implode(', ', $categories); echo "<li>$name: $categoriesList</li>"; } echo '</ul>'; ``` Теперь, когда вы запустите этот код, результат будет в правильном формате и будет выглядеть следующим образом: ```html <ul> <li>ASUS TUF: Игровые ноутбуки, Ноутбуки для работы</li> <li>ARDOR GAMING NEO: Игровые ноутбуки, Ноутбуки для работы</li> <li>MSI Katana: Игровые ноутбуки, Ноутбуки для работы</li> <li>HUAWEI MateBook D 16 2024 MCLF-X: Ноутбуки для работы, Ультрабуки</li> <li>Samsung Book3 Pro 360 NP960: Ноутбуки для работы, Ультрабуки, Ноутбуки-трансформеры</li> </ul> ``` Этот код правильно выводит все категории для каждого товара в одном элементе списка.
<?php $goods = [ 'ASUS TUF' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'ARDOR GAMING NEO' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'MSI Katana' => ['Игровые ноутбуки', 'Ноутбуки для работы'], 'HUAWEI MateBook D 16 2024 MCLF-X' => ['Ноутбуки для работы', 'Ультрабуки'], 'Samsung Book3 Pro 360 NP960' => ['Ноутбуки для работы', 'Ультрабуки', 'Ноутбуки-трансформеры'] ]; echo "<ul>"; foreach ($goods as $name => $categories) { echo "<li>$name: " . implode(", ", $categories) . "</li>"; } echo "</ul>"; ?>