在PHP中使用2个标准拆分字符串


Split string using 2 criterias in PHP

我正在使用这个

$lines = explode(PHP_EOL, trim($text));

将$text分割成一个行数组,这样我就可以像这样显示:

foreach ($lines as $line) {
 echo $line;
}

但现在我想测试每一行的长度,如果长度超过50个字符,我想把每一行分成50个字符的倍数。

如何做到这一点并保留$lines数组中的所有行?

我需要一种方法来测试每一行,或者使用爆炸(换行符($line),50)进行爆炸;然后重新构建$lines数组,这样我就可以再次循环所有的行。

由于我不是一个程序员,如果一行必须分成50个字符的几段,我不知道如何在数组中插入新行。

希望你能理解我的问题。谢谢

这正是chunk_split的用途:

echo chunk_split( $line, 50 );

这将把$line分成多行,每行50个字符。


在OP指定要将行拆分为数组中的各个元素后更新

$temp = explode( PHP_EOL, trim($text) );
$lines = array();
foreach ($temp as $line) {
   $lines = array_merge( $lines, str_split($line, 50) );
}

请参阅此处的操作:http://viper-7.com/eRgm6p

您可以使用str_splitforeach中进行拆分,然后使用array_splice将新元素放在旧元素的位置。

在实践中,它看起来像这样:

$lines = explode(PHP_EOL, trim($text));
foreach ($lines as $i => $line) {
    if (strlen($line) > 50) {
        $split = str_split($line, 50);
        $lines = array_splice($lines, $i, 1, $split);
    }
}
reset($lines);
foreach ($lines as $line) {
    echo $line;
}