Php 拆分字符串并获取分隔符作为返回

Php 拆分字符串并获取分隔符作为返回,php,split,explode,Php,Split,Explode,我想用一个分隔符数组分割一个字符串,并获得关于分隔符是什么的反馈 示例: $mystring='test+string |和| hello+word' $result=preg\u split(“/\+,|/+”,$mystring) 我想要一个数组作为返回,返回的内容如下: $return[0]=数组('test','+') $return[1]=数组('string','|') thnx提前查看的PREG\u SPLIT\u DELIM\u捕获选项 编辑 例如: $mystring = 't

我想用一个分隔符数组分割一个字符串,并获得关于分隔符是什么的反馈

示例:
$mystring='test+string |和| hello+word'
$result=preg\u split(“/\+,|/+”,$mystring)

我想要一个数组作为返回,返回的内容如下:
$return[0]=数组('test','+')
$return[1]=数组('string','|')


thnx提前查看的PREG\u SPLIT\u DELIM\u捕获选项

编辑

例如:

$mystring = 'test+string|and|hello+word';
$result = preg_split('/([\+|,])/', $mystring, null, PREG_SPLIT_DELIM_CAPTURE);

请看一看PREG_SPLIT_DELIM_捕获选项

编辑

例如:

$mystring = 'test+string|and|hello+word';
$result = preg_split('/([\+|,])/', $mystring, null, PREG_SPLIT_DELIM_CAPTURE);

在写我的答案之前,我不知道关于
PREG\u SPLIT\u DELIM\u CAPTURE
。它肯定比使用
preg\u match\u all
更清晰:

<?php
$s = 'a|b|c,d+e|f,g';
if (preg_match_all('/([^+,|]+)([+,|])*/', $s, $matches)) {
  for ($i = 0; $i < count($matches[0]); $i++) {
    echo("got '{$matches[1][$i]}' via delimiter '{$matches[2][$i]}'\n");
  }
}

在写我的答案之前,我不知道
PREG\u SPLIT\u DELIM\u CAPTURE
。它肯定比使用
preg\u match\u all
更清晰:

<?php
$s = 'a|b|c,d+e|f,g';
if (preg_match_all('/([^+,|]+)([+,|])*/', $s, $matches)) {
  for ($i = 0; $i < count($matches[0]); $i++) {
    echo("got '{$matches[1][$i]}' via delimiter '{$matches[2][$i]}'\n");
  }
}
thnx标记(用于回答和快速回复)!thnx标记(用于回答和快速回复)!