【问题标题】:How can stop foreach duplicate values in smarty 2?如何在 smarty 2 中停止 foreach 重复值?
【发布时间】:2014-10-08 23:28:58
【问题描述】:

我在模板上 foreach 后得到了这个结果。但是如何停止 foreaching 相同的值而只显示一个呢?

<ul>
{foreach from=$names item=v name=thenames}
    <li>{$v.names}/<li>
{/foreach}
</ul>

【问题讨论】:

    标签: foreach smarty


    【解决方案1】:

    如果是一个简单的key->value数组,你可以在你的php文件中使用array_unique来处理这个数组,然后再发送给smarty。您也可以在模板中使用 $names|array_unique

    调用它

    如果所有重复项都是一个接一个(即a,a,a,b,b,c,c,c),可以尝试使用变量来存储之前的值,所以它只显示第一个:

    {assign var="previous" value=""}
    {foreach from=$names item=v name=thenames}
        {if $previous!=$v.names}
        <li>{$v.names}/<li>
        {/if}
        {assign var="previous" value=$v.names}
    {/foreach}
    

    如果没有,我建议在 php 中预处理数组或使用 smarty 3。

    【讨论】:

    • 我需要在模板中使用它。不,这种方式不适合我,如果有问题,我使用 smarty 2
    • 你能把原始模板代码贴在 {foreach} 里面吗?
    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 2021-10-26
    • 2020-07-27
    相关资源
    最近更新 更多