如何删除字符串末尾的逗号?

zec*_*ude 108 php

我想删除字符串末尾的逗号.因为现在我正在使用

$string = substr($string,0,-1);
Run Code Online (Sandbox Code Playgroud)

但这只删除了字符串的最后一个字符.我正在动态添加字符串,因此有时字符串末尾没有逗号.如果字符串末尾有一个逗号,我如何让PHP删除字符串末尾的逗号?

Sig*_*urd 285

$string = rtrim($string, ',');
Run Code Online (Sandbox Code Playgroud)

rtrim这里的文件

  • 这将删除多个逗号:"a,b ,,,"将变为"a,b".无论这是OP想要与否,我都不知道...... (26认同)

Ben*_*ell 37

这是一个经典问题,有两个解决方案.如果您想要删除一个逗号,可能会或可能不存在,请使用:

if (substr($string, -1, 1) == ',')
{
  $string = substr($string, 0, -1);
}
Run Code Online (Sandbox Code Playgroud)

如果要从行尾删除所有逗号,请使用更简单的:

$string = rtrim($string, ',');
Run Code Online (Sandbox Code Playgroud)

rtrim函数(和左边修剪的相应ltrim)非常有用,因为你可以指定要删除的字符范围,即删除你要编写的逗号和尾随空格:

$string = rtrim($string, ", \t\n");
Run Code Online (Sandbox Code Playgroud)


use*_*291 11

我想你是在循环中连接一些东西,比如

foreach($a as $b)
  $string .= $b . ',';
Run Code Online (Sandbox Code Playgroud)

更好的方法是收集数组中的项目,然后使用您需要的分隔符加入它

foreach($a as $b)
  $result[] = $b;

$result = implode(',', $result);
Run Code Online (Sandbox Code Playgroud)

这解决了串联时通常会出现的尾随和双分隔符问题


小智 9

如果要在循环中连接某些内容,也可以这样做:

$coma = "";
foreach($a as $b){
    $string .= $coma.$b;
    $coma = ",";
}
Run Code Online (Sandbox Code Playgroud)