【问题标题】:Display comma and space properly in foreach loop在 foreach 循环中正确显示逗号和空格
【发布时间】:2017-09-22 14:16:04
【问题描述】:

我需要在页面上显示标签,诀窍是我不想在最后一个标签之后显示逗号。

所以,我有这个:

@foreach($tag as $t)
   <a href="/search?q={{$t}}" class="tags">{{$loop->first ? '' : ', '}} {{$t}}</a>
@endforeach

我想要这个:

A, B, C, D

但是,我得到了这个:

A , B , C , D

项目和逗号之间有多余的空格...

【问题讨论】:

标签: php laravel laravel-blade


【解决方案1】:

您需要检查循环是否在最后一项上,如果不是,则附加逗号和空格(而不是附加逗号和空格)。

例如:

@foreach($tag as $t)
   <a href="/search?q={{$t}}" class="tags">{{$t}}{{$loop->last ? '' : ', '}}</a>
@endforeach

您得到双空格的原因是因为您在 PHP 中回显了一个空格,并且还在两个花括号之间放置了一个空格。

更新:虽然您的回答也可以,但这是一个偏好问题。字母和逗号之间有额外空格的最初原因是大括号变量之间的间距。

【讨论】:

  • 他在问为什么有多余的空间!!
  • 就是这样。完美!
  • @Mohammad Alabed 因为他在 ', '}} {{ 添加了 extar 空间,而他没有注意到 8-[
  • @harunB10 虽然这会起作用,但我只想指出,原来的额外空间是由于您在打开 &lt;a&gt; 标记之前拥有的空间。此解决方案之所以有效,是因为您保证逗号位于标签之后,没有空格。如果您在打开 &lt;a&gt; 标记之前删除所有空格,则您之前的代码将起作用。
  • @HalfCrazed 花括号之间的空格与它没有任何关系。这只是在逗号后添加了一个额外的空格,而逗号后的多个空格只是压缩为显示的一个空格。 OP遇到的问题是标签之后和逗号之前有一个额外的空格。由于 OP 缩进了他们的代码,这个额外的空间。虽然它使代码更漂亮一些,但它实际上是在输出空格,而那个空格恰好在最后一个逗号和下一个打印标签之间。
猜你喜欢
  • 2017-11-18
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2013-07-25
  • 2010-09-11
  • 2016-10-10
  • 1970-01-01
相关资源
最近更新 更多