首页 > 解决方案 > 具有多维数组的导航栏

问题描述

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 个如何在项目总数中同时获得名称和链接?

标签: phptwig

解决方案


您可以迭代menu.Itemsmenu.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>

工作示例


推荐阅读