我如何删除一个string结束的逗号?

我想删除一个string结束的逗号。 现在我正在使用

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

但是只能删除string的最后一个字符。 我正在dynamic添加string,所以有时在string的末尾没有逗号。 如何让PHP在string末尾删除逗号(如果末尾有逗号)?

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

rtrim在这里rtrim

这是一个典型的问题,有两个解决scheme。 如果你想删除一个逗号,可能会或可能不会在那里,使用:

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

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

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

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

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

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

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

更好的办法是收集数组中的项目,然后用你需要的分隔符join它

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

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

看看rtrim函数

 rtrim ($string , ","); 

如果最后一个字符是逗号,上面的行将删除一个字符

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

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

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

在此之前:

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

一个简单的正则expression式可以工作

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

我有一个讨厌的“看不见的”空间在我的string结束,必须这样做

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

但上面的解决scheme更好

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