1

我遵循逻辑来打印字符串。现在字符串正在打印,但它们没有用逗号分隔。我想在打印每个字符串后插入逗号分隔符。逗号不应在最后一个字符串后打印。如何做到这一点?我几乎尝试了所有事情,但没有得到想要的结果。那么在这方面可以很好地控制smarty的人帮助我吗?提前致谢。

{foreach from=$all_states item=state key='key'}
  {foreach from=$preview_data.applicable_states item=pre key='index'}    
    {if $state.id == $pre} {$state.state_name} {/if}
  {/foreach}  
{/foreach}
4

1 回答 1

2

另一种看待问题的方法是,除第一个字符串之外的每个字符串之前都应打印一个逗号,因此创建一个名为“comma”的变量并将其初始化为空字符串,并在打印第一个字符串后将其设置为“,” .

未经测试,但你明白了:

{assign var="comma" value=""}
{foreach from=$all_states item=state key='key'}
  {foreach from=$preview_data.applicable_states item=pre key='index'}    
    {if $state.id == $pre} {$comma}{$state.state_name} {assign var="comma" value=","}{/if}
  {/foreach}  
{/foreach}
于 2014-04-26T05:22:16.893 回答