Строки в массиве нуждаются в форматировании

У меня есть массив строк, таких как:

$testArray =  array ('here I am going to have a string that is over 50 charactersss ', 'where I am going to hav string that is over 50 charactersss');

Мне нужно в основном создать функцию, которая будет принимать массив или массивы и подсчитывать длину строк. Если это более 30 символов, то он выполнит это действие, которое удалит элементы из массива и создаст строку с новыми строками длиной не более 30 символов и слова не повреждены следующим образом:

'here I am going to have a
string that is over 50 where
I am going to have a string
that is over 50 charactersss'

До сих пор я играл несколько дней, но не могу заставить это работать …

Это то, что я пытался мне нужен способ подсчета, если длина строки в массиве больше 30, то я могу применить что-то вроде этого:

public function textFunction($content = [])
{
$rawText       = implode(' ', $content);
$cleanText     = trim(preg_replace('/\s\s+/', ' ',
str_replace("\n", " ", $rawText)));
$formattedText = wordwrap($cleanText, 30, "\n");
return $formattedText;
}

Вышеприведенное работает, но как я могу проверить, что содержимое содержит более 30 символов внутри массива, чтобы выполнить это, мне придется зацикливать содержимое, но тогда я не смогу выполнить вышеизложенное, если это имеет смысл.

0

Решение

Вы можете использовать некоторые wordwrap:

$testArray =  array ('here I am going to have a string that is over 50 charactersss ', 'where I am going to hav string that is over 50 charactersss');

$newarray = [];
foreach ($testArray as $str) {
$newarray = array_merge($newarray,explode("\n",wordwrap($str,30)));
}

Результирующий массив (сбрасывается):

array(5) {
[0]=>
string(25) "here I am going to have a"[1]=>
string(22) "string that is over 50"[2]=>
string(13) "charactersss "[3]=>
string(30) "where I am going to hav string"[4]=>
string(28) "that is over 50 charactersss"}

Пример: http://sandbox.onlinephpfunctions.com/code/8987b80df4cbe9876568e64a9e983a8c3a492606

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector