Задать вопрос
@BjornBorn

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

Есть массив с товарами и категориями, к которым он относится.
$goods = [
    'ASUS TUF' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
    'ARDOR GAMING NEO' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
    'MSI Katana' => ['Игровые ноутбуки', 'Ноутбуки для работы'],
    'HUAWEI MateBook D 16 2024 MCLF-X' => ['Ноутбуки для работы', 'Ультрабуки'],
    'Samsung Book3 Pro 360 NP960' => ['Ноутбуки для работы', 'Ультрабуки', 'Ноутбуки-трансформеры']
];


Нужно вывести данные из этого массива в виде маркированного списка.
Вот в таком виде:
<ul>
	<li>ASUS TUF: Игровые ноутбуки, Ноутбуки для работы</li>
	<li>ARDOR GAMING NEO: Игровые ноутбуки, Ноутбуки для работы</li>
</ul>


Я вот так сделал:
echo '<ul>';

foreach ($goods as $name => $categories) {

    foreach ($categories as $category) {
        echo "<li>$name: $category</li>";
    }
}
echo '</ul>';


Но результат не совсем такой, как мне нужно:

67387a21d1f72026695036.png
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
alsolovyev
@alsolovyev
¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
<?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>";
?>
Ответ написан
Комментировать
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Так и выводить. Во внутреннем фориче только категории, а не всё подряд.
echo "<ul>\n";
foreach ($goods as $name => $categories) {
    echo "<li>$name: ";
    foreach ($categories as $i =>$category) {
        echo $i ? ", " : "";
        echo $category;
    }
    echo "</li>\n";
}
echo "</ul>\n";
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы