0

我有一个嵌套的 smarty foreach 循环。我正在尝试在 div 上获得按顺序编号的输出(参见示例) 在内部数组上使用键或索引或 .iteration 不能按我想要的方式工作。我可以看到正在发生的事情,但我想要某种方式来保持整体运行计数,而不是部分计数,这会在外循环的每个分支上不断重置。我尝试了很多事情都没有成功。任何人都可以帮忙吗?非常感激。

{foreach from=$children item='child'}

{if $child.show_in_menu}


{* loop through grandchildren *}

{foreach from=$child item='grandchild'  name='grandchildrenpages' key=k}

{if $grandchild.show_in_menu}


<div class="view-{$k}"></div>

{/if}
{/if}
{/foreach}
{/if}
{/foreach}

期望的输出

<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-3"></div>
<div class="view-4"></div>
<div class="view-5"></div>
<div class="view-6"></div>
<div class="view-7"></div>
<div class="view-8"></div>

电流输出

<div class="view-0"></div>
<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-1"></div>
<div class="view-2"></div>
<div class="view-5"></div>
<div class="view-6"></div>
<div class="view-7"></div>
4

1 回答 1

0

使用 {counter}:

{foreach from=$children item='child'}
        {if $child.show_in_menu}
    {foreach from=$child item='grandchild'  name='grandchildrenpages' key=k}
                {if $grandchild.show_in_menu}
        <div class="view-{counter}"></div>
                {/if}
    {/foreach}
        {/if}
{/foreach}

(顺便说一句,你的例子有一个 {/if} 比需要的多,我想这是一个错字

于 2012-05-31T07:23:53.900 回答