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 に答える