这个问题与Split, a string, at every nth position, with PHP不同,因为我想分割如下字符串:
foo|foo|foo|foo|foo|foo
进入此(每隔2 |
):
array (3) {
0 => 'foo|foo',
1 => 'foo|foo',
2 => 'foo|foo'
}
所以,基本上,我想要一个类似于explode()
的函数(我真的怀疑我要问的是内置的),但是在某个字符串的每第n次出现时“爆炸”。 / p>
这怎么可能?
答案 0 :(得分:2)
您可以使用explode + array_chunk + array_map + implode
$string = "foo|foo|foo|foo|foo|foo";
$array = stringSplit($string,"|",2);
var_dump($array);
输出
array
0 => string 'foo|foo' (length=7)
1 => string 'foo|foo' (length=7)
2 => string 'foo|foo' (length=7)
使用的功能
function stringSplit($string, $search, $chunck) {
return array_map(function($var)use($search){return implode($search, $var); },array_chunk(explode($search, $string),$chunck));
}