将聪明的循环阵列分成一半



我在控制器中有一个简单的数组,用于测试目的$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>

您可以创建和额外的变量来存储数组长度除以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>

最新更新