将Smarty循环阵列分成两半

时间:2014-01-24 16:09:57

标签: smarty smarty3

我的控制器中有一个简单的数组用于测试目的$this->view_data['test'] = array(1,2,3,4,5,6,7,8,9,10);我想使用Smarty3输出数组,以显示一个col中的前半部分和下一个col中的后半部分。

<div class="col-md-6">
    <!-- first half -->
    {foreach $test as $t}
        {$t}
    {/foreach}
</div>
<div class="col-md-6">
    <!-- second half -->
    {foreach $test as $t}
        {$t}
    {/foreach}
</div>

1 个答案:

答案 0 :(得分:0)

您可以创建和使用额外的变量来存储数组长度除以2.在smarty 3.1中测试

{{assign var="cnt" value=$test|@count}} 
{{math equation="ceil(cnt/2)" cnt=$test|@count assign=dv}}
<div class="col-md-6">
{{section name=i loop=$test}}   
    {{$test[i]}}                    
{{if $smarty.section.i.iteration % $dv == 0 AND $smarty.section.i.iteration-1 < $cnt}}
</div><div class="col-md-6">
{{/if}}
{{/section}}
</div>