Php 使用多个分隔符将文本拆分为修剪值数组

Php 使用多个分隔符将文本拆分为修剪值数组,php,arrays,string,preg-split,delimited-text,Php,Arrays,String,Preg Split,Delimited Text,我有一组字符串,我需要将它们分块到一个数组中。 字符串需要在/、、、、和或&上拆分 不幸的是,一个字符串可能包含两个需要拆分的字符串,因此我不能使用split()或explode() 例如,一个字符串可以说first pass/going beyond&然后turn,因此我尝试获取一个返回的数组: array('first past', 'going beyond', 'then turn') 我当前使用的代码是 $splittersArray=array('/', ',', ' with '

我有一组字符串,我需要将它们分块到一个数组中。 字符串需要在
/
&
上拆分


不幸的是,一个字符串可能包含两个需要拆分的字符串,因此我不能使用
split()
explode()

例如,一个字符串可以说
first pass/going beyond&然后turn
,因此我尝试获取一个返回的数组:

array('first past', 'going beyond', 'then turn')
我当前使用的代码是

$splittersArray=array('/', ',', ' with ','&');
foreach($splittersArray as $splitter){
    if(strpos($string, $splitter)){
        $splitString = split($splitter, $string);
        foreach($splitString as $split){
我似乎在PHP中找不到允许我这样做的函数。 我是否需要将字符串传递回漏斗顶部,并在字符串被一次又一次拆分后继续通过
foreach()


这似乎不是很有效。

使用正则表达式和

在您提到的情况下,您将获得以下拆分数组:

$splitString = preg_split('/(\/|\,| with |\&/)/', $string);

要简洁地编写模式,请使用字符类作为单字符分隔符,并将
with
分隔符作为值添加到管道后面(regex中的“or”字符)。在分隔符组的任一侧允许零个或多个空格,以便不需要修剪输出中的值

我正在使用
PREG\u SPLIT\u NO\u EMPTY
函数标志,以防在字符串的开头或结尾出现分隔符,并且您不希望生成任何空元素

代码:()

输出:

array (
  0 => 'first past',
  1 => 'going beyond',
  2 => 'then turn',
  3 => 'everyone',
)

“不幸的是,一个字符串可能包含两个需要拆分的字符串,所以我不能使用拆分或分解。”您能解释一下这是什么意思吗?我只是添加了一个示例来澄清
array (
  0 => 'first past',
  1 => 'going beyond',
  2 => 'then turn',
  3 => 'everyone',
)