2017-10-11 12 views
0

를 포맷해야합니다. 그것은 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 이상이면 뭔가를 적용 할 수 있는지 계산해야합니다. like :

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자를 초과하면 내용을 반복해야하지만 위의 내용을 이해할 수 없으면 콘텐츠를 루프해야합니다.

+1

당신이 시도한 것을 보여주십시오. 격렬하게 잘못지도 한 시도조차도 아무것도 아닌 것보다 낫습니다. 그것은 당신이 문제를 해결하기 위해 노력하고 있음을 보여줍니다. – tadman

+1

[wordwrap] (http://php.net/manual/en/function.wordwrap.php)을 사용하십시오. – FirstOne

+0

이것은 배열의 문자열 길이가 30 이상이고 다음과 같이 적용 할 수있는 경우 계산 방법이 필요합니다. – gold82

답변

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 문제의 좋은 설명입니다,하지만 여기서 정말 중요한 것은이다