Vla*_*nov 4 php loops for-loop if-statement twig
所以这只是我试图实现的一个例子。我正在遍历所有项目并只打印那些以 F 开头并用逗号分隔的项目。所以最后,循环将进行,例如 15 次迭代,但只会打印 5。我试图抓住最后一个将被打印,所以我可以删除逗号。我尝试使用过滤器 loop.last,但它只有在循环打印最后一个项目时才有效,但如果最后一个打印更早,它仍然带有逗号。
{% for item in items %}
{% if item starts with 'F' %}
{{ item }},
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我无法编辑项目中的任何内容。请帮忙,我已经被困在这个问题上有一段时间了。
更简单的解决方案可能是向for 语句添加条件并仅在不是第一次交互时才显示逗号(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 %}
Run Code Online (Sandbox Code Playgroud)
有关工作解决方案,请参阅此 twigfiddle
我测试了这个,所以我想我会提供一个答案:
{% 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(',') }}
Run Code Online (Sandbox Code Playgroud)