Php 将大文本拆分为数量可变的部分

Php 将大文本拆分为数量可变的部分,php,arrays,Php,Arrays,我需要这样的东西: $x = 4; $story = "BUT I MUST EXPLAIN TO YOU HOW ALL THIS MISTAKEN IDEA OF DENOUNCING PLEASURE AND PRAISING PAIN WAS BORN AND I WILL GIVE YOU A COMPLETE ACCOUNT OF THE SYSTEM AND EXPOUND THE ACTUAL TEACHINGS OF THE GREAT EXPLORER"; 例如,如果$x=

我需要这样的东西:

$x = 4;
$story = "BUT I MUST EXPLAIN TO YOU HOW ALL THIS MISTAKEN IDEA OF DENOUNCING PLEASURE AND PRAISING PAIN WAS BORN AND I WILL GIVE YOU A COMPLETE ACCOUNT OF THE SYSTEM AND EXPOUND THE ACTUAL TEACHINGS OF THE GREAT EXPLORER";
例如,如果
$x==4
每个元素将包含四个单词:

但我必须解释一下
对你来说怎么样
etc

如果
$x==5
每个元素将包含五个单词:

但我必须向你解释
你怎么弄错了
etc


有什么想法吗?

您可以使用
array\u chunk()
来执行此操作:

$arr = explode(' 'nth($x), $story);

您已经尝试了什么?一种方法是计算单词之间的空格,并在$x-1空格后拆分字符串。但这只是一个粗略的想法。
<?php
    $x = 4;
    $story = "BUT I MUST EXPLAIN TO YOU HOW ALL THIS MISTAKEN IDEA OF DENOUNCING PLEASURE AND PRAISING PAIN WAS BORN AND I WILL GIVE YOU A COMPLETE ACCOUNT OF THE SYSTEM AND EXPOUND THE ACTUAL TEACHINGS OF THE GREAT EXPLORER";

    # we do a normal explode to get it into an array
    $arr = explode(' ', $story);
    # break into arrays divided by $x
    echo '<pre>'. print_r(array_chunk($arr, $x), 1) .'</pre>';
<?php
$story = "BUT I MUST EXPLAIN TO YOU HOW ALL THIS MISTAKEN IDEA OF DENOUNCING PLEASURE AND PRAISING PAIN WAS BORN AND I WILL GIVE YOU A COMPLETE ACCOUNT OF THE SYSTEM AND EXPOUND THE ACTUAL TEACHINGS OF THE GREAT EXPLORER";

foreach(
    array_chunk(
        str_word_count($story, 1),
        4 // Your chunk size.
    ) as $group
)
    echo implode(' ', $group), "\n";
BUT I MUST EXPLAIN
TO YOU HOW ALL
THIS MISTAKEN IDEA OF
DENOUNCING PLEASURE AND PRAISING
PAIN WAS BORN AND
I WILL GIVE YOU
A COMPLETE ACCOUNT OF
THE SYSTEM AND EXPOUND
THE ACTUAL TEACHINGS OF
THE GREAT EXPLORER