具有多维数组的导航栏

Navbar with multidimentional array

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>

server.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>

所以我要做的基本上是通过数组

为每个菜单项生成一个link和名称

我也试过在 for 循环中放置一个 for 循环,它创建 8 个不同的项目而不是仅仅 4 个 我怎样才能在项目总数中同时获得名称和 link?

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

working example