【发布时间】:2009-10-29 10:14:34
【问题描述】:
我想删除字符串末尾的逗号。现在我正在使用
$string = substr($string,0,-1);
但这只会删除字符串的最后一个字符。我是动态添加字符串,所以有时字符串末尾没有逗号。如果字符串末尾有逗号,我如何让 PHP 从字符串末尾删除逗号?
【问题讨论】:
标签: php
我想删除字符串末尾的逗号。现在我正在使用
$string = substr($string,0,-1);
但这只会删除字符串的最后一个字符。我是动态添加字符串,所以有时字符串末尾没有逗号。如果字符串末尾有逗号,我如何让 PHP 从字符串末尾删除逗号?
【问题讨论】:
标签: php
$string = rtrim($string, ',');
【讨论】:
这是一个经典问题,有两种解决方案。如果您想删除一个逗号,可能存在也可能不存在,请使用:
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 . ',';
更好的是收集数组中的项目,然后将它与您需要的分隔符连接起来
foreach($a as $b)
$result[] = $b;
$result = implode(',', $result);
这解决了通常在连接中出现的尾随和双分隔符问题
【讨论】:
如果你在循环中连接一些东西,你也可以这样做:
$coma = "";
foreach($a as $b){
$string .= $coma.$b;
$coma = ",";
}
【讨论】:
看看rtrim函数
rtrim ($string , ",");
如果最后一个字符是逗号,上述行将删除一个字符
【讨论】:
if(substr($str, -1, 1) == ',') {
$str = substr($str, 0, -1);
}
【讨论】:
一个简单的正则表达式就可以了
$string = preg_replace("/,$/", "", $string)
【讨论】:
rtrim ($string, ",");是最简单的方法。
【讨论】:
我的字符串末尾有一个讨厌的“不可见”空间,我不得不这样做
$update_sql=rtrim(trim($update_sql),',');
但上面的解决方案更好
$update_sql=rtrim($update_sql,', ');
【讨论】:
在前面加上:
if(substr($string, -1)==",")
【讨论】: