如何在smarty中检查迭代?

时间:2012-03-05 08:47:23

标签: foreach smarty

如何检查foreach的当前迭代并执行某些操作?

{foreach $new_products as $product name=foo}
    {if $smarty.foreach.foo.iteration=5}
        Do it!
    {/if}
{/foreach}

这总是返回未选中

3 个答案:

答案 0 :(得分:10)

我认为你应该{if $smarty.foreach.foo.iteration == 5}(注意==)。

答案 1 :(得分:6)

有一种替代方法(我认为更新)。 Smarty docs中的示例很好地证明了这一点:

{foreach $items as $i}
  {if $i@index eq 3}
     {* put empty table row *}
     <tr><td>nbsp;</td></tr>
  {/if}
  <tr><td>{$i.label}</td></tr>
{/foreach}

注意索引从零开始,因此索引3是第4次迭代。

答案 2 :(得分:2)

对于Smarty 3,您可以使用@iteration属性

{foreach $new_products as $product}
    {if $product@iteration == 5}
        Do it!
    {/if}
{/foreach}