1

我需要通过找到第一个字符来拆分字符串。最快的写法是什么?

字符串示例:

$string = 'Some text here| some text there--and here|another text here';

预期结果:

$new_string = 'Some text here';

这是一个解决方案,我有。有没有更有效的方法来做到这一点?

$explode = explode('|', $string);  
$new_string = explode[0];
4

5 回答 5

2

使用strpos()substr()Strpos()一旦找到第一个匹配项就会返回,而explode()必须遍历整个字符串。

于 2012-05-04T11:24:48.520 回答
2

使用strstr()

strstr($string, "|", true);

将返回所有内容,直到第一个管道 (|)。

于 2012-05-04T11:28:11.800 回答
1
$string = 'Some text here| some text there--and here|another text here';
$string = substr($string, 0, strpos($string,'|'));
print $string;

编辑:使用 strstr() 更好。

于 2012-05-04T11:30:59.393 回答
1

爆炸可以变成单线

list($first,) = explode('|', $string,2);

但是, strtok 看起来是最简洁的解决方案。

至于效率 - 选择哪种方式来执行这种微不足道的操作根本不重要。

无论处理的数据如何导致效率低下。理智的程序员会不惜一切代价避免处理大量数据。从效率的角度来看,其他任何事情都是完全垃圾。

于 2012-05-04T14:27:07.310 回答
0

最好搭配:

$first = strtok($string, '|');

如果你喜欢,你可以去和爆炸:

$explode = explode('|', $string, 1);

strpos()substr()并且strstr()对此有好处。

于 2012-05-04T11:27:57.253 回答