首页 > 解决方案 > 用树枝渲染嵌套的关联数组

问题描述

我面临一个需要帮助的小问题。我有这个 php 应用程序,它将数据传递给一个 twig html 模板。

我的 PHP 代码生成以下(简化):

$menuItemsWithPictures = array(
   'PageName' => "page_name",
   'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
);

在我的前端,我想让渲染中的每个项目都$menuItemsWithPictures变成这样(同样,这里非常简化):

<div>
  <a href=PageName><!-- Taken from the PageName key in the array-->
     <img src=picture1 /> <!-- taken from pictures array [0] -->
     <img src=picture2 /> <!-- taken from pictures array [1] -->
  </a>
</div>

我尝试了一些变体 {% for key, value in array %},但无济于事,因为我a总是以数组很长的频率生成标签。

有人可以在这里指出我正确的方向吗?

问候, derelektrischemoench

标签: phptwig

解决方案


我认为您的数组示例有点错误。我相信您实际上是在使用多维数组,不是吗?像这样:

$menuItemsWithPictures = [
    [
        'pageName' => 'page_name',
        'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
    ],
    [
        'pageName' => 'another_page',
        'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
    ]
];

如果是这种情况,那么正确的 Twig 语法将是:

<div>
    {% for item in menuItemsWithPictures %}
        <a href="{{ item.pageName }}">
            {% for image in item.pictures %}
                <img src="{{ image }}"/>
            {% endfor }
        </a>
    {% endfor %}
</div>

推荐阅读