我怎样才能将每个第三个分号(;)作为一个片段爆炸?
示例数据:$ string = piece1; piece2; piece3; piece4; piece5; piece6; piece7; piece8;
示例输出将是:
$output[0] = piece1;piece2:piece3;
$output[1] = piece4;piece5;piece6;
$output[2] = piece7;piece8;
Run Code Online (Sandbox Code Playgroud)
谢谢!
我相信你可以用正则表达式做一些光滑的东西,但为什么不只是爆炸每个半色,然后一次添加三个.
$tmp = explode(";", $string);
$i=0;
$j=0;
foreach($tmp as $piece) {
if(! ($i++ %3)) $j++; //increment every 3
$result[$j] .= $piece;
}
Run Code Online (Sandbox Code Playgroud)
我能想到的最简单的解决方案是:
$chunks = array_chunk(explode(';', $input), 3);
$output = array_map(create_function('$a', 'return implode(";",$a);'), $chunks);
Run Code Online (Sandbox Code Playgroud)