Smarty删除foreach循环中的尾随逗号

时间:2014-11-07 23:15:50

标签: php foreach smarty trim

我在smarty中有以下循环:

{foreach from=$method.params key=name item=type}
    <i style="font-weight: normal;">{$type}</i> {$name},
{/foreach}

删除尾随逗号的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

我更喜欢Twig而不是Smarty所以我正在从文档中工作,但这是我的刺:

{assign var="comma" value=""}
{foreach from=$method.params key=name item=type}
    {$comma}<i style="font-weight: normal;">{$type}</i> {$name}
    {assign var="comma" value=", "}
{/foreach}

答案 1 :(得分:3)

你也可以这样做:

{foreach from=$method.params key=name item=type name=myloop}
    <i style="font-weight: normal;">{$type}</i> {$name}
    {if not $smarty.foreach.myloop.last}, {/if}
{/foreach}

您也没有提到您使用的Smarty版本。如果你使用Smarty 3(如果它是你的选择你应该使用它,你应该使用Smarty 3 foreach风格而不是Smarty 2 foreach风格)。

修改

如你所说,你使用Smarty 3,你应该这样使用Smarty 3 foreach语法:

{foreach $method.params as $name => $type}
    <i style="font-weight: normal;">{$type}</i> {$name}
    {if not $type@last}, {/if}
{/foreach}