2012-05-30 62 views
0

我有一個嵌套的smarty foreach循環。 我想在divs上獲得順序編號的輸出(請參閱示例) 在內部數組上使用鍵或索引或.iteration不能按我想要的方式工作。 我可以看到發生了什麼,但我想要一些保持總體運行計數而不是部分計數的方法,它可以在外部循環的每個分支上保持重置。 我已經嘗試過很多事情沒有成功。 任何人都可以幫忙嗎?非常感激。SMARTY>嵌套的foreach循環>整體計數器

{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> 

Currentoutput

<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> 
+0

你可以給數組格式嗎? – Micku

回答

0

使用{}櫃檯:

{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}超過需要,我猜這是一個輸入錯誤

+0

感謝periklis,我對解決方案的簡單性感到有些尷尬!爲了解決這個問題,我嘗試並實現了一個{counter},但是錯誤地在循環外部設置了一個計數器,併爲其指定了一個變量,並試圖在內部調用它。基本上我誤解了如何使用它。額外的{/ if}被錯誤地留下,對不起,我試圖從真實生活代碼中獲取所有不必要的細節,以避免混淆,但不幸的是將其留在了。再次感謝 - 最有幫助。 – naturelab