这是我的行
AQUA19097444,AQUA43188766,AQUA49556282,AQUA51389151,AQUA57267110,BLUE12811521,BLUE15966728
这是我最终想要实现的目标
AQUA 1909 7444,AQUA 4318 8766,AQUA 4955 6282,AQUA 5138 9151,AQUA 5726 7110,BLUE 1281 1521,BLUE 1596 6728
请注意,每4个字符有空格,但如果下一个逗号则不包含空格。
这是我到目前为止所尝试的:注意我在每个循环中都是
$Raffles[$index] = chunk_split($Raffles[$index], 4, ' ');
这是代码
的输出AQUA 1909 7444 ,AQU A431 8876 6,AQ UA49 5562 82,A QUA5 1389 151, AQUA 5726 7110 ,BLU E128 1152 1,BL UE15 9667 28
正如你所看到的,当它到达我想要忽略的逗号
时它会占用一个空格请帮帮我,谢谢你阅读我的问题。
答案 0 :(得分:4)
复杂的方式:
$Raffles[$index] = implode(",",array_map(function($p) {return chunk_split($p,4," ");},explode(",",$Raffles[$index])));
(请注意,您可以通过在其周围包裹另一个foreach
而不在array_map
循环中执行此操作。
黑魔法:
$Raffles[$index] = preg_replace("/([^,]{4})(?!,)(?=.)/","$1 ",$Raffles[$index]);
答案 1 :(得分:2)
分解你的字符串,然后遍历它并使用chunk_split
每隔四个字符放置一个空格。
$string = 'AQUA19097444,AQUA43188766,AQUA49556282,AQUA51389151,AQUA57267110,BLUE12811521,BLUE15966728';
$exploded_string = explode(',', $string);
foreach($exploded_string as $item){
$result[] = chunk_split($item, 4, ' ');
}
print_r($result);
会给你
Array ( [0] => AQUA 1909 7444
[1] => AQUA 4318 8766
[2] => AQUA 4955 6282
[3] => AQUA 5138 9151
[4] => AQUA 5726 7110
[5] => BLUE 1281 1521
[6] => BLUE 1596 6728 )
如果要将其转换回逗号分隔的字符串,请使用$result = implode(',', $result);
答案 2 :(得分:-1)
下面的内容应该有效...
$string ='AQUA19097444,AQUA43188766,AQUA49556282,AQUA51389151,AQUA57267110,BLUE12811521,BLUE15966728';
$explode = explode(',',$string);
$count = 0;
while (!empty($explode[$count])) {
$var[] = chunk_split($explode[$count], 4, ' ');
$count++;
}