这个问题与使用 PHP 在每个第 n 个位置处的一个字符串 Split不同,因为我想拆分一个字符串,如下所示:
foo|foo|foo|foo|foo|foo
进入这个(每 2 次|
):
array (3) {
0 => 'foo|foo',
1 => 'foo|foo',
2 => 'foo|foo'
}
所以,基本上,我想要一个类似于explode()
(我真的怀疑我要问的是内置的)的函数,但它在某个字符串的每第 n 次出现时“爆炸”。
这怎么可能?
这个问题与使用 PHP 在每个第 n 个位置处的一个字符串 Split不同,因为我想拆分一个字符串,如下所示:
foo|foo|foo|foo|foo|foo
进入这个(每 2 次|
):
array (3) {
0 => 'foo|foo',
1 => 'foo|foo',
2 => 'foo|foo'
}
所以,基本上,我想要一个类似于explode()
(我真的怀疑我要问的是内置的)的函数,但它在某个字符串的每第 n 次出现时“爆炸”。
这怎么可能?
您可以使用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));
}