我想删除字符串末尾的逗号。因为现在我正在使用
$string = substr($string,0,-1);
但只删除字符串的最后一个字符。我正在动态添加字符串,因此有时字符串末尾没有逗号。如果字符串末尾有一个逗号,我如何让PHP删除逗号?
答案 0 :(得分:270)
$string = rtrim($string, ',');
答案 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);
}
答案 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,', ');