从字符串中删除最后一个字符的最快方法是什么?

我有一根绳子

a,b,c,d,e,

我想删除最后一个“,”并取回剩余的字符串:

OUTPUT: a,b,c,d,e

最快的方法是什么?


当前回答

您可以使用

substr(string $string, int $start, int[optional] $length=null);

请参见PHP文档中的substr。它返回字符串的一部分。

其他回答

您可以使用

substr(string $string, int $start, int[optional] $length=null);

请参见PHP文档中的substr。它返回字符串的一部分。

使用字符串锚定符“$”的正则表达式结尾

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

“最快的最佳代码是不存在的代码”。

说到边缘情况,循环后出现的尾随逗号有一个非常常见的问题,例如

$str = '';
foreach ($array as $value) {
    $str .= "$value,";
}

我想,最初的问题也可能是这样。在这种情况下,最快的方法肯定是根本不添加尾随逗号:

$str = '';
foreach ($array as $value) {
    $str .= $str ? "," : "";
    $str .= $value;
}

这里,我们检查$str是否已经有任何值,如果有,在下一项之前添加逗号,因此结果中没有多余的逗号。

您可以使用substr:

echo substr('a,b,c,d,e,', 0, -1);
# => 'a,b,c,d,e'

这将字符串从开始到最后一个字符(包括第二个字符)进行隔离。换句话说,它隔离了除最后一个字符之外的整个字符串。

如果最后一个字符可以是多字节,则应改用mb_substr()。

如果确实要替换最后一个字符:

$string = "a,b,c,d,e,";

$string[strlen($string)-1] = "";

echo $string; //output: a,b,c,d,e