【发布时间】:2014-10-08 23:28:58
【问题描述】:
我在模板上 foreach 后得到了这个结果。但是如何停止 foreaching 相同的值而只显示一个呢?
<ul>
{foreach from=$names item=v name=thenames}
<li>{$v.names}/<li>
{/foreach}
</ul>
【问题讨论】:
我在模板上 foreach 后得到了这个结果。但是如何停止 foreaching 相同的值而只显示一个呢?
<ul>
{foreach from=$names item=v name=thenames}
<li>{$v.names}/<li>
{/foreach}
</ul>
【问题讨论】:
如果是一个简单的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。
【讨论】: