如何检查foreach的当前迭代并执行某些操作?
{foreach $new_products as $product name=foo}
{if $smarty.foreach.foo.iteration=5}
Do it!
{/if}
{/foreach}
这总是返回未选中
答案 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}