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. Как я могу получить и имя, и ссылку в общем количестве элементов?
Вы можете повторить 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>
Я считаю, что вы должны подготовить свои данные, чтобы они были структурированы так, как вам нужно, прежде чем передавать их в шаблон. Чем меньше логики вам придется делать в шаблоне, тем лучше. Так что, возможно, один массив с именами в качестве ключей и ссылками в качестве значений.