Twig 循环中的计数

Twig 循环中的计数,twig,Twig,你好,我想做这样的事情: <?php $count = 0; foreach($a as $v): $count++; ?> <?php if ($count%2 == 0): ?> ... <?php endif; ?> <?php endforeach; ?> 但是,如何让变量随循环演变呢?显然,twig在for循环中定义了一些变量: {% for v in a %} {% if loop.index0 is even

你好,我想做这样的事情:

<?php $count = 0; foreach($a as $v): $count++; ?>
  <?php if ($count%2 == 0): ?>
    ...
  <?php endif; ?>
<?php endforeach; ?>

但是,如何让变量随循环演变呢?

显然,twig在for循环中定义了一些变量:

{% for v in a %}
    {% if loop.index0 is even %}
        ...
    {% endif %}
{% endfor %}

如果将其用于样式设置,可以执行以下操作:

{% for v in a %} 
  <div class="link {{ cycle(['even', 'odd'], loop.index0) }}">
  </div>
{% endfor %}
{%v在%}
{%endfor%}

谢谢,这正是我想要的。然而,只是一个小的修正:它应该是
cycle(['偶数',奇数',loop.index0)
,因为使用了
loop.index0
。当您使用
loop.index0
时,您说您有一个“第零”行,而零是一个偶数。所以,通过这个修正,你的第0行是偶数,第一行是奇数,第二行是偶数,等等。非常好的解决方案,特别是如果你需要一些不同于“偶数和奇数”的东西,例如“第一、第二和第三”。现在,性能如何?使用
{%if loop.index0为偶数%}
可能比使用
{{cycle(['偶','奇'],loop.index0)}
在字符串列表中循环快?我很想知道是否有任何理由选择一种解决方案而不是另一种解决方案,或者它最终是否无关紧要。如果loop.index可被(2)%}整除,也有类似的情况。
{% for v in a %} 
  <div class="link {{ cycle(['even', 'odd'], loop.index0) }}">
  </div>
{% endfor %}