2011-12-26 100 views
27

你好,我想這樣做財產以後這樣的:在一個循環計數

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

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

但我怎麼能有一個變量,循環發展?

回答

56

顯然枝杈定義了一些loop variables裏面的for循環:

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

如果你使用它的造型,你可以這樣做:

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

感謝,正是我一直在尋找。然而,只是一個小的修正:它應該是'cycle(['even','odd'],loop.index0)',因爲使用了'loop.index0'。當你使用'loop.index0'時,你說你有一個「第零」行,零是一個偶數。所以,在這種情況下,你的第零排是平坦的,第一排是奇數,第二排是偶數,等等。 – cmt 2013-08-03 06:25:34

+0

非常整潔的解決方案,尤其是如果你需要與「偶數和奇數」不同的東西,例如「1st,2nd和3rd 」。現在,性能呢?也許使用'{%if loop.index0 is even%}'比用{{循環(['even','odd'],loop.index0)}}''知道是否有任何理由選擇一種解決方案,還是最終並不重要,將會很有趣。 – Arvid 2017-01-05 12:41:37