php - 具有多维数组的导航栏
问题描述
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>
推荐阅读
- javascript - Javascript拆分数组并一遍又一遍地调用它
- postgresql - 获取每日重复的交易金额
- c - Accelerate 框架在 Mac M1 上仅使用一个内核
- php - 如何根据逐步 div 设置 div 的高度
- amazon-web-services - 有没有办法为 AWS 放大项目生成配置文件 (yaml) 或某种方式?
- vue.js - 在没有点击事件的情况下使用 $emit
- c++ - 将输入读取到 C++ 中的数组时出错
- python - 遍历行以检查数组的值是否存在于两列之间
- amazon-mws - 有没有办法使用亚马逊 MWS API 取消移除订单?
- mapbox-android - 更新 GeoJSON 源会使图层不可见,直到放大/缩小地图