gpt4 book ai didi

group-by - Twig 循环分组

转载 作者:行者123 更新时间:2023-12-02 08:02:25 26 4
gpt4 key购买 nike

假设我在数组中有一些名为“人”的数据,然后将其放入 Twig 模板中,如下所示:

firstname | surname | colour
Fred Smith Blue
James Holmes Red
Sarah Fisher Blue
Chrstine Jenkins Yellow
Sid Wells Red
Cory Simpson Blue
Laura Jones Yellow

有了这些数据,我需要按“颜色”列对它们进行分组。根据颜色将 div 包裹在用户周围。例如

<div class="colour_container">
Fred Smith - Blue<br>
Sarah Fisher - Blue<br>
Cory Simpson - Blue<br>
</div>

<div class="colour_container">
James Holmes - Red<br>
Sid Wells - Red<br>
</div>

<div class="colour_container">
Christine Jenkins - Yellow<br>
Laura Jones - Yellow<br>
</div>

现在,如果我使用 Twig 循环,它会将 div 放在每个名称周围,而不是按颜色对它们进行分组。获得上述输出的最简单方法是什么?我已经在循环中尝试了各种方法,但我很挣扎。

{% for p in people %}
<div class="colour_container">
{{ p.firstname }} {{ p.surname }} - {{ p.colour }}
</div>
{% endfor %}

我需要它以某种方式首先循环唯一的颜色值,然后循环属于该颜色的名称。

最佳答案

我最近也遇到了类似的问题。我已经进行了扩展并将其作为开源发布。它引入了 lambda 表达式和 |group_by 过滤器。

https://github.com/dpolac/twig-lambda

这样你就可以简单地写:

{% for colour, group in people|group_by(=> _.colour) %}
<div class="colour_container">
{% for person in group %}
{{ person.firstname }} {{ person.surname }} - {{ person.colour }}
{% endfor %}
</div>
{% endfor %}

关于group-by - Twig 循环分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com