0

这个问题与使用 PHP 在每个第 n 个位置处的一个字符串 Split不同,因为我想拆分一个字符串,如下所示:

foo|foo|foo|foo|foo|foo

进入这个(每 2 次|):

array (3) {
  0 => 'foo|foo',
  1 => 'foo|foo',
  2 => 'foo|foo'
}

所以,基本上,我想要一个类似于explode()(我真的怀疑我要问的是内置的)的函数,但它在某个字符串的每第 n 次出现时“爆炸”。

这怎么可能?

4

1 回答 1

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));
}
于 2012-10-06T10:12:18.347 回答