Smarty Foreach循环,将+1添加到打印出的类中

时间:2018-06-25 12:06:16

标签: php html smarty

我正在聪明地工作,每次在遍历foreach循环时都难以添加+1,而是为所有循环添加了相同的数字。无论如何,有没有在smarty中添加一个计数器,该计数器为他打印的每个类都添加+1,因此所有类都互不相同。

 $title is defind as 0 in another file

 {foreach from=$articles item=article}
        <h2 class="title{$title + 1}">{$article[0]}</h2>
        <p class="article">{$article[1]}</p>
        <img class="image" src="{$article[2]}" alt="foobar" />
 {/foreach}

2 个答案:

答案 0 :(得分:0)

您实际上可以使用键/值对

使用密钥而不是计数器。这是正确的方法。

{foreach from=$myArray key=k item=v}
     <li>{$k}: {$v}</li>
 {/foreach}

在这里您可以启用密钥,这对Smarty来说是很自然的。现在,此关键变量将随每个循环自然移动,从而使您可以访问计数器。如果需要,您可以实际在哪个数学模型中进行数学运算。在您的代码中,您始终添加1,而该位置将不会移动。

此处的更多详情https://www.smarty.net/docsv2/en/language.function.foreach.tpl

答案 1 :(得分:0)

上面的答案很好,但是如果由于某些原因必须使用方法,则需要在每次迭代期间重新定义变量$title,因为现在每次迭代前变量的值都是0。所以会是

{foreach from=$articles item=article}
    {assign var='title' value=$title + 1}
    <h2 class="title{$title}">{$article[0]}</h2>
    <p class="article">{$article[1]}</p>
    <img class="image" src="{$article[2]}" alt="foobar" />
{/foreach}