因此,这只是我要实现的目标的一个示例。 我遍历所有项目并仅打印以F开头并以逗号分隔的项目,因此最后将进行循环,例如15次迭代,但仅打印5次。我尝试使用filter loop.last,但只有在循环打印最后一个项目时才起作用,但是如果最后一次打印是较早的,则仍然使用逗号。 >
{% for item in items %}
{% if item starts with 'F' %}
{{ item }},
{% endif %}
{% endfor %}
我无法编辑项目中的任何内容。 请帮助,一段时间以来我一直对此感到困惑。
答案 0 :(得分:3)
一个更简单的解决方案可以是for语句的Adding a condition,并且仅当不是第一次交互时才显示逗号(loop.last
是在使用循环条件时定义的)。例如:
{% set items = ['Fitem1', 'item2', 'Fitem3', 'Fitem4', 'item5'] %}
{% for item in items if item starts with 'F'%}
{% if loop.first == false %},{% endif%}
{{item}}
{% endfor %}
有关有效的解决方案,请参见this twigfiddle
答案 1 :(得分:1)
我对此进行了测试,所以我想提供一个答案:
{% set items = ['Fitem1', 'item2', 'Fitem3', 'Fitem4', 'item5'] %}
{% set newArray = [] %}
{% for item in items %}
{% if item starts with 'F' %}
{% set newArray = newArray|merge([item]) %}
{% endif %}
{% endfor %}
{{ newArray|join(',') }}