PHP中如何删除最后一个逗号之后的字符串部分

5

如何在 PHP 中删除最后一个逗号后面的字符串?

字符串:"this is a post, number 1, date 23, month 04, year 2012"
期望结果:"this is a post, number 1, date 23, month 04"


1
使用strrpos(http://php.net/manual/en/function.strrpos.php)搜索逗号,然后进行子字符串操作。 - nhahtdh
3个回答

11

substrstrrpos 会很有用。

$until = substr($string, 0, strrpos($string.",", ","));

注意:根据下方评论进行了编辑


2
注意:此代码并不总是有效,例如如果字符串中没有逗号。由于没有最后一个逗号,因此不应该删除任何内容,但是所有内容都被删除了。 - hakre
2
缺少逗号的简单修复方法:substr($string, 0, strrpos($string.",", ",")); - dfmiller

4
您希望替换最后一个逗号及其后面的所有内容,即一个逗号后跟任何其他字符直到字符串结尾。
这可以用正则表达式来表述,并且该模式可以通过preg_replace替换为空字符串。
$until = preg_replace('/,[^,]*$/', '', $string);

这是Mario的回答的一种变体,适用于字符串中没有逗号的情况。


确实。正则表达式通常更适合,因为它可以同时断言和修改字符串。 - mario

3

在第一步中,将字符串分割并删除创建的演示文稿中的最后一部分,然后再将数组合并

$tokens = explode(':', $string);      // 使用 : 将字符串分割成数组
array_pop($tokens);                   // 删除数组中的最后一个元素
$newString = implode(':', $tokens);   // 再次使用 : 合并数组为字符串


1
你应该为此添加一些解释。现在它只是一段代码块。 - Josh Crozier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接