在smarty中将数组结果放在不同的div中

时间:2012-01-09 06:45:26

标签: php foreach indexing smarty

我使用smarty作为我的模板引擎。我有一个php结果分配给smarty $sac。 如果我正在写作

{foreach name = feach item = k from = $sac}
    {$k->job_category}    
{/foreach}

它在一行中显示结果。但我们的设计师使用不同的div来显示结果。

<div class="left1">

<ol>
<li>&nbsp;  Academic</li>
<li>&nbsp;  Administrative</li>
<li>&nbsp;  Bank</li>
<li>&nbsp;  BPO</li>
<li>&nbsp;  Civil</li>
<li>&nbsp;  Defence</li>
</ol>
</div>

<div class="left1">

<ol>
<li>&nbsp;  Engineering</li>
<li>&nbsp;  Finance</li>
<li>&nbsp;  Government</li>
<li>&nbsp;  Hospitality</li>
<li>&nbsp;  HR</li>
<li>&nbsp;  Insurance</li>
</ol>
</div>
等等。显示我想知道如何以此形式显示结果。我想我可以使用modulus operator(%),因为字段的数字在每列中都是固定的(6)。

1 个答案:

答案 0 :(得分:1)

你可以使用名称迭代器和forach。它基于循环foreach两次;

<div class="left1">
<ol>
{foreach name = feach item = k from = $sac name=cat}
    {if $smarty.foreach.cat.index%2==0}
        <li>{$k->job_category}</li>
    {/if}
{/foreach}
</ol>
</div>

以及下一个div块

<div class="left1">
<ol>
{foreach name = feach item = k from = $sac name=cat}
    {if $smarty.foreach.cat.index%2!=0}
        <li>{$k->job_category}</li>
    {/if}
{/foreach}
</ol>
</div>