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

时间:2009-10-29 10:14:34

标签: php

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

$string = substr($string,0,-1);

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

10 个答案:

答案 0 :(得分:270)

$string = rtrim($string, ',');

Docs for rtrim here

答案 1 :(得分:35)

这是一个经典问题,有两个解决方案。如果您想要删除一个逗号,可能有也可能没有,请使用:

if (substr($string, -1, 1) == ',')
{
  $string = substr($string, 0, -1);
}

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

$string = rtrim($string, ',');

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

$string = rtrim($string, ", \t\n");

答案 2 :(得分:11)

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

foreach($a as $b)
  $string .= $b . ',';

更好的方法是收集数组中的项目,然后将其与您需要的分隔符一起加入

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

$result = implode(',', $result);

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

答案 3 :(得分:4)

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

$coma = "";
foreach($a as $b){
    $string .= $coma.$b;
    $coma = ",";
}

答案 4 :(得分:2)

查看rtrim函数

rtrim ($string , ",");

如果最后一个字符是逗号

,则上面一行将删除一个字符

答案 5 :(得分:1)

if(substr($str, -1, 1) == ',') {

  $str = substr($str, 0, -1);

}

http://php.net/manual/en/function.substr.php

答案 6 :(得分:1)

rtrim($ string,“,”);是最简单的方法。

答案 7 :(得分:0)

先用:

if(substr($string, -1)==",")

答案 8 :(得分:0)

一个简单的正则表达式将起作用

$string = preg_replace("/,$/", "", $string)

答案 9 :(得分:0)

我的字符串末尾有一个讨厌的“隐形”空间,不得不这样做

 $update_sql=rtrim(trim($update_sql),',');

但上面的解决方案更好

 $update_sql=rtrim($update_sql,', ');