智能迭代并记录上一列


Smarty Iteration and get the previous column in record

在我的循环中,我想将记录集中的当前列与下一列进行比较,以便在不同时添加一个额外的空白行。

{if $smarty.section.row.next.pc_name != $timeblocks[row].pc_name}
    <tr bgcolor="#333333"><td colspan="6">&nbsp;</td></tr>
{/if}

我总是通过检查以前的记录来做这些事情,就像这样:

{assign var="last" value=""}
{section name=row loop=$rows}
    ...
    {if $last != $timeblocks[row].pc_name}
        <tr bgcolor="#333333"><td colspan="6">&nbsp;</td></tr>
        {assign var="last" value=$timeblocks[row].pc_name} {* UPDATE LAST *}
    {/if}
{/section}

但是,如果你想维护你的逻辑,你可以使用 index_next section 属性,它给你下一个迭代索引(不幸的是不是下一个迭代元素,但没有问题):

{if $timeblocks[$smarty.section.row.index_next].pc_name != $timeblocks[row].pc_name}
    <tr bgcolor="#333333"><td colspan="6">&nbsp;</td></tr>
{/if}