Навбар с многомерным массивом

navbar.html.twig

<ul class = "navbar-nav mr-auto">
{% for Links, Item in menu %}
    <li class = "nav-item">
    <a class = "nav-link" href = "{{ Links }}">{{ Item }}
    </a>
  </li>
{% endfor %}
 </ul>

сервер.php

$menu = [
  "Items" => array("Home", "Woman's Fashion", "Men's Fashion", "Accessories"),
  "Links" => array("/homepage", "/woman", "/men", "/accessories")
 ];


$params = [
  "name" => "Mr. Gadget",
  "title" => SITE_TITLE,
  "SITE_TITLE" => SITE_TITLE,
  "user" => "myName",
  "menu" => $menu
];

echo $twig->render('views/navbar.html.twig', $params);

Это генерирует вывод

<ul class = "navbar-nav mr-auto">
  <li class = "nav-item">
        <a class = "nav-link" href = "Items">Array
    </a>
  </li>
    <li class = "nav-item">
        <a class = "nav-link" href = "Links">Array
    </a>
  </li>
</ul>

Итак, что я пытаюсь сделать, это в основном создать ссылку и имя для каждого пункта меню через массив

Я также попытался поместить цикл for в цикл for, который создает 8 различных элементов вместо 4. Как я могу получить и имя, и ссылку в общем количестве элементов?

Я считаю, что вы должны подготовить свои данные, чтобы они были структурированы так, как вам нужно, прежде чем передавать их в шаблон. Чем меньше логики вам придется делать в шаблоне, тем лучше. Так что, возможно, один массив с именами в качестве ключей и ссылками в качестве значений.

El_Vanja 11.12.2020 12:00
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете повторить menu.Items или menu.Links и использовать ключ массива, чтобы выбрать запись из другого массива, как это

<ul class = "navbar-nav mr-auto">
    {% for key, Item in menu.Items %}
        <li class = "nav-item">
            <a class = "nav-link" href = "{{ menu.Links[key] }}">{{ Item }}
            </a>
        </li>
    {% endfor %}
</ul>

рабочий пример

Другие вопросы по теме