The function str_split() is not 'aware' of words. Here is an adaptation of str_split() that is 'word-aware'.<?php$array =  str_split_word_aware(    'In the beginning God created the heaven and the earth. And the earth was without form, and void; and darkness was upon the face of the deep.',     32);var_dump($array);/**  * This function is similar to str_split() but this function keeps words intact; it never splits through a word.   *  * @return array<int, string>  */function str_split_word_aware(string $string, int $maxLengthOfLine): array{    if ($maxLengthOfLine <= 0) {        throw new RuntimeException(sprintf('The function %s() must have a max length of line at least greater than one', __FUNCTION__));    }        $lines = [];    $words = explode(' ', $string);    $currentLine = '';    $lineAccumulator = '';    foreach ($words as $currentWord) {        $currentWordWithSpace = sprintf('%s ', $currentWord);        $lineAccumulator .= $currentWordWithSpace;        if (strlen($lineAccumulator) < $maxLengthOfLine) {            $currentLine = $lineAccumulator;            continue;        }        $lines[] = $currentLine;        // Overwrite the current line and accumulator with the current word        $currentLine = $currentWordWithSpace;        $lineAccumulator = $currentWordWithSpace;    }    if ($currentLine !== '') {        $lines[] = $currentLine;    }    return $lines;}?>OUTPUT: <?phparray(5) {  [0]=> string(29) "In the beginning God created "  [1]=> string(30) "the heaven and the earth. And "  [2]=> string(28) "the earth was without form, "  [3]=> string(27) "and void; and darkness was "  [4]=> string(27) "upon the face of the deep. "}?>