我有一个字符串:
$str = 'Hello World, Welcome World, Bye World';
我想将字符串切成碎片。每件作品应为10个字符。如果要剪切一个单词,则将该单词移到下一行。
例如:
$output = array();
$output[0] = 'Hello ';
$output[1] = 'World, ';
$output[2] = 'Welcome ';
$output[3] = 'World, Bye';
$output[4] = 'World';
如果没有那么多if else和循环,是否存在最短路径。
由于
答案 0 :(得分:8)
使用wordwrap
。默认情况下,它会包装整个单词,而不会将它们分割成碎片。
echo wordwrap('Hello World, Welcome World, Bye World', 10);
如果你想要一个数组,那么之后会爆炸:
print_r(explode("\n", wordwrap('Hello World, Welcome World, Bye World', 10)));
答案 1 :(得分:0)
string test = 'Hello World, Welcome World, Bye World';
string[] splited = test.Split(' ');
foreach (string str in s.Split(splited))
{
Console.WriteLine(str);
}
注意:它是用C#编写的,我希望它会给你一个想法。
此致
答案 2 :(得分:0)
虽然不完全是答案,但是类似的问题是这样的:
你有一个很长的字符串,你想把这个字符串分成几个块。你不想打破单词,但如果单词很长,单词就会被打破。
$string = "Hello I am a sentence but I have verylongwordthat I can split";
如果单词很长,你会在这句话中拆分单词,如下所示:
$pieces = explode(" ",$string);
$textArray=array();
foreach ($pieces as $p) {
$textArray= array_merge($textArray, str_split($p, 10));
}
$stringNew=implode(" ",$textArray);
输出:
"Hello I am a sentence but I have verylongwo rdthat I can split"