在PHP中将字符串拆分为数组的最快方法

时间:2013-03-19 11:46:13

标签: php regex arrays

我有一个PHP脚本,它使用prey_split将字符串拆分为数组。 preg_split代码是:

preg_split("~(?<!\*):~", $val);

基本上将字符串拆分为有冒号的字符串,没有前面的星号。 例如:"h*:el:lo"变为array("h*:el", "lo")

当分割大量字符串时,此过程非常耗费资源并且速度很慢。 有没有更快的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

$string = "h*:el:lo";
$string = str_replace("*:", "#", $string);
$array = explode(":", $string);

我不确定速度会是什么样的。但是一旦从字符串中删除*:位,就很容易爆炸。如果你需要,也许你可以在操作后把*:放回去。

答案 1 :(得分:0)

您需要使用preg_split()吗?因为它更容易使用preg_match_all()

preg_match_all('/(?:^|:)([^*:]+(?:\*.[^*:]+)*)/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];