如何删除字符串中的第一个数字?

Joe*_*ani 4 php

如何删除字符串中的第一个数字?如果我将这48个数字与','(逗号)分开,请说:

8,5,8,10,15,20,27,25,60,31,25,39,25,31,26,28,80,28,27,31,27,29,26,35,8,5,8,10,15,20,27,25,60,31,25,39,25,31,26,28,80,28,27,31,27,29,26,35
Run Code Online (Sandbox Code Playgroud)

如何从字符串中删除"8"?谢谢.

Den*_*nov 8

substr(strchr("2512,12512,1245234,23452345", ","), 1)
Run Code Online (Sandbox Code Playgroud)

其实.这是我认为最有效的方式,因为它没有将字符串转换为数组或其他东西.它只是切掉了弦.

  • 我做了一个快速测试,因为我很好奇 - 这确实比@ soulmerge的答案更有效 - 但只有大约90个字节的内存和几微秒.事实上,在某些情况下,带有限制的"爆炸"速度稍微快一些.但总的来说,速度的差异可以忽略不计. (2认同)

Mic*_*ech 7

$text = "8,5,8,10,15,20,27,25,60,31,2";
Run Code Online (Sandbox Code Playgroud)

首先你可以爆炸:

$array = explode(',', $text);
Run Code Online (Sandbox Code Playgroud)

然后删除第一个元素:

array_shift($array);
Run Code Online (Sandbox Code Playgroud)

加入到最后,加入:

echo implode(',' $array);
Run Code Online (Sandbox Code Playgroud)

  • 我永远不会理解为什么人们使用`explode`进行简单的字符串操作. (4认同)

sou*_*rge 7

以下假设您至少有2个数字(且速度很快):

list($first, $rest) = explode(',', $string, 2);
Run Code Online (Sandbox Code Playgroud)

这也适用于单个数字(但使用正则表达式):

preg_replace('/^.*?,/', '', $string);
Run Code Online (Sandbox Code Playgroud)