在 PHP 中,如何使用多个分隔符进行字符串切割?

188

我有一个问题,我有一个字符串数组,我想用不同的分隔符进行拆分。例如:

$example = 'Appel @ Ratte';
$example2 = 'apple vs ratte'

我需要一个用 @ 或 vs 分割的数组。

我已经写了一个解决方案,但如果有更好的解决方案,请在这里发帖。

private function multiExplode($delimiters,$string) {
    $ary = explode($delimiters[0],$string);
    array_shift($delimiters);
    if($delimiters != NULL) {
        if(count($ary) <2)                      
            $ary = $this->multiExplode($delimiters, $string);
    }
    return  $ary;
}

我从来没有见过有人回答问题时用“这个如何”、“那个怎么样”之类的话。 - HosseyNJF
12个回答

1
如果您的分隔符只是字符,您可以使用strtok,这似乎更适合这里。请注意,您必须将其与while循环一起使用才能实现效果。

-1

这个会起作用:

$stringToSplit = 'This is my String!' ."\n\r". 'Second Line';
$split = explode (
  ' ', implode (
    ' ', explode (
      "\n\r", $stringToSplit
    )
  )
);

正如您所看到的,它首先将通过 \n\r 分割的部分用空格粘合在一起,然后再次拆开,这次连同空格一起。


这个回答似乎完全忽略了提问者的背景和要求。 - mickmackusa

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