如何按字符串的每第n次出现拆分数组?

时间:2012-10-06 09:31:44

标签: php string explode

这个问题与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>

这怎么可能?

1 个答案:

答案 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));
}