У меня есть массив строк, таких как:
$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 символов внутри массива, чтобы выполнить это, мне придется зацикливать содержимое, но тогда я не смогу выполнить вышеизложенное, если это имеет смысл.
Вы можете использовать некоторые 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
Других решений пока нет …