Smarty,每4次迭代新行

kxc*_*kxc 3 php foreach counter html-table smarty

如何在Smarty中设置循环中的每4次迭代,我会在表中获得新行?我正在尝试这样的事情:

<table>
    {foreach $arr as $v}
       {counter start=0}
       {if $counter/4 == 0}
           <tr><td>{$v}</td></tr>
       {else}
           <td>{$v}</td>
       {/if}
       <td>
    {/foreach}
</table>
Run Code Online (Sandbox Code Playgroud)

但我明白这是愚蠢的,我被困住了,有没有正常的方法呢?

hek*_*mgl 5

如果没有数据,如果你可以使用空行,那么使用:

{assign var="counter" value="0"}
<table>
    <tr>
    {foreach $arr as $v}
       {assign var="counter" value=$counter + 1}
       {if $counter % 4 == 0}
           </tr><tr>
       {/if}
       <td>{$v}</td>
    {/foreach}
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

如果你不能忍受这个,那么你需要在渲染表之前检查是否有可用的数据.

仍然可以说,计数$arr必须是倍数4.否则,columnspan需要正确设置属性.