如何使用PHP从字符串中删除最后一个逗号?


96

我正在使用循环从数据库中获取值,结果是:

'name', 'name2', 'name3',

我想要这样:

'name', 'name2', 'name3'

我想在循环的最后一个值后删除逗号。


11
您应将implode原始值添加逗号,而不要循环使用它们并最后删除内容。
moonwave99年

Answers:


217

使用rtrim功能:

rtrim($my_string, ',');

第二个参数指示要删除的字符。


26
还要确保逗号后没有空格,否则将失败,或者执行rtrim(trim($ my_string),',')。
Foxhoundn

很好的答案!
DiChrist

@Foxhoundn您的评论是救世主。谢谢兄弟
Jaydeep Goswami

1
这在循环的末尾添加逗号不起作用,因为它将删除所有逗号。
LizardKG

25

尝试:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');

1
我已经尝试过了,但是显示如下:'name'name2'name3'这不是我所需要的
JoJo

根据您的示例,您只需要将此函数应用于最终结果,而不必分别应用于每个值。
波阿斯

我正在使用循环,如何知道循环的最终结果?
JoJo 2013年

循环的最终结果存储在变量中,对吗?因此,将rtrim调用应用于该变量。如果仍然有困难,请使用产生循环的代码更新您的问题。
波阿斯2013年

我特别喜欢这个答案,因为许多PHP内置函数的问题之一是它们中的一些是空的,并且其中一些具有返回类型。在这种情况下,我试图写的是rtrim($string, ',')我应该写的时间$string = rtrim($string, ',');
Alec

14

试试下面的代码:

$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);

使用此代码删除字符串的最后一个字符。



7

rtrim 功能

rtrim($my_string,',');

第二个参数指示逗号将从右侧删除。



4

如果您使用从中进行子字符串处理的多字节文本,则会影响脚本。如果是这种情况,我建议您在php.ini中启用mb_ *功能或执行此操作ini_set("mbstring.func_overload", 2);

$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);


2

它很简单:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');

2

为此目的最好使用内爆法。放大简单又好用:

    $array = ['name1', 'name2', 'name3'];
    $str = implode(', ', $array);

输出:

    name1, name2, name3

无需首先从数据库读取的值中生成数组。rtrim&substr都是有效的解决方案。
史蒂夫·霍瓦斯

好吧,您是对的,但是如果您有一个数组,这是一个方便的解决方案
khandaniel

1

您可以使用以下一种技术删除最后一个逗号(,)

解决方案1:

$string = "'name', 'name2', 'name3',";  // this is the full string or text.
$string = chop($string,",");            // remove the last character (,) and store the updated value in $string variable.
echo $string;                           // to print update string.

解决方案2:

$string = '10,20,30,';              // this is the full string or text.
$string = rtrim($string,',');
echo $string;                       // to print update string.

解决方案3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.