我使用foreach循环从数据库中回显一些值,并用逗号分隔每个值。我不知道如何删除它在最后一个值上添加的最后一个逗号。我的代码非常简单,但我似乎找不到正确的方法:
foreach ($this->sinonimo as $s){ echo '<span>'.ucfirst($s->sinonimo).',</span>'; }
xqkwcwgp1#
把你的值放在一个数组中,然后用逗号(+一个空格)对数组进行implode:
implode
$myArray = array(); foreach ($this->sinonimo as $s){ $myArray[] = '<span>'.ucfirst($s->sinonimo).'</span>'; } echo implode( ', ', $myArray );
这会在每个值之间放置逗号,但不会在结尾处。同样,在这种情况下,逗号会在跨度之外,例如:
<span>Text1<span>, <span>Text2<span>, <span>Text3<span>
chy5wohz2#
代码的另一种方法是使用一点逻辑:
hasComma = false; foreach ($this->sinonimo as $s){ if (hasComma){ echo ","; } echo '<span>'.ucfirst($s->sinonimo).'</span>'; hasComma=true; }
wgx48brx3#
我通常会尽量避免为这样的用例添加逻辑。最好的方法是将值存储在数组中,然后用逗号将其内爆。
但是,您可以通过CSS添加逗号,这要容易得多。
你的漂亮和干净的循环:
foreach($collection->object as $data) { echo "<span>" . $data->var . "</span>"; }
对于CSS:
.selector span:after { content: ","; } .selector span:last-child:after { content: ""; }
这适用于所有主流浏览器,包括IE8和更新版本。
wj8zmpe14#
Laravel有一个与php implode()相同的implode()函数。您应该在Collection对象上使用implode()函数:
implode()
Collection
$user->posts->implode('title', ', ');
输出将如下所示:
Hello world!, First post, Second post
toe950275#
将分隔符视为值之前的前缀,第一个分隔符预设为“”(空字符串),然后在每个元素之后设置为,"":
$s = ''; foreach ($names as $name) { echo $s . $name; $s = ', '; }
n8ghc7c16#
除了@塞巴斯蒂安的答案,你还可以这样做:
echo "<span>".ucfirst($this->sinonimo[0]); for($i = 1; $i < count($this->sinonimo); $i++) { echo "</span>, <span>" . ucfirst($this->sinonimo[$i]); } echo "</span>";
它不需要额外的数组,首先打印第一个元素,然后在循环中打印中间段,接着打印下一个元素,最后用结束段结束所有内容。
g0czyy6m7#
使用**substr()函数将最终字符串放入substr()**函数中
$string = ""; while ($row = mysql_fetch_array($result)) { $string .= $name . ', '; } echo substr($string, 0, strlen($string) - 2);
7lrncoxx8#
用于关系数据的Laravel implode()函数。喜欢的帖子有很多类别。
$user->posts->implode('categories.name', ', '); // In loop {{ $post->categories->name }}
bihw5rsg9#
你可以使用trim函数。2假设你字符串是这样的
$str=1,2,3,4,5,6,7,8,
你可以试试这个
echo trim($str, ",");
并且输出被
1,2,3,4,5,6,7,8
9条答案
按热度按时间xqkwcwgp1#
把你的值放在一个数组中,然后用逗号(+一个空格)对数组进行
implode
:这会在每个值之间放置逗号,但不会在结尾处。同样,在这种情况下,逗号会在跨度之外,例如:
chy5wohz2#
代码的另一种方法是使用一点逻辑:
wgx48brx3#
我通常会尽量避免为这样的用例添加逻辑。最好的方法是将值存储在数组中,然后用逗号将其内爆。
但是,您可以通过CSS添加逗号,这要容易得多。
你的漂亮和干净的循环:
对于CSS:
这适用于所有主流浏览器,包括IE8和更新版本。
wj8zmpe14#
Laravel有一个与php
implode()
相同的implode()
函数。您应该在
Collection
对象上使用implode()
函数:输出将如下所示:
toe950275#
将分隔符视为值之前的前缀,第一个分隔符预设为“”(空字符串),然后在每个元素之后设置为,"":
n8ghc7c16#
除了@塞巴斯蒂安的答案,你还可以这样做:
它不需要额外的数组,首先打印第一个元素,然后在循环中打印中间段,接着打印下一个元素,最后用结束段结束所有内容。
g0czyy6m7#
使用**substr()函数
将最终字符串放入substr()**函数中
7lrncoxx8#
用于关系数据的Laravel implode()函数。
喜欢的帖子有很多类别。
bihw5rsg9#
你可以使用trim函数。2假设你字符串是这样的
你可以试试这个
并且输出被