如何递增Smarty变量?

2022-04-07 00:00:00 php smarty

我通常不是一个聪明的人,所以我有点卡住了。

我想回显数组的索引,但每次回显时都要递增它。

这就是我的……

<ul>
    {foreach from=$gallery key=index item=image}
    <li>
        <img src="{$image}" alt="" id="panel-{$index++}" />
    </li>
    {/foreach}
</ul>

它不起作用。

在将数组交给Smarty之前对其进行预处理的最佳方式是什么?

有什么方法可以使用Smarty完成此操作吗?


解决方案

您可以执行以下操作:

<ul>
    {foreach from=$gallery key=index item=image name=count}
    <li>
        <img src="{$image}" alt="" id="panel-{$smarty.foreach.count.index}" />
    </li>
    {/foreach}
</ul>

从零开始,index是当前数组索引。

这可能是最好的方法,但是,只需在foreach循环外使用counter就可以使用counter,如下所示:

{counter start=0 skip=1 assign="count"}

要递增,只需在每次迭代时调用{counter}

{counter}
{*Can then use the $count var*}
   {if $count is div by 4}
      {*do stuff*}
   {/if}

相关文章