2017-08-31 32 views
0

我想從字符串中跨越3個字。比如我有一個標題在3個字的組中分解數組並將其包裝

$string = "one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen"; 

結果輸出:

<span>one two three</span> 
<span>four five six</span> 
<span>seven eight nine</span> 
<span>ten eleven twelve</span> 
<span>thirteen fourteen fifteen</span> 
<span>sixteen seventeen</span> 

下面是代碼

<?php 
$title_my = 'one two three four five six seven eight nine ten eleven 
twelve thirteen fourteen fifteen sixteen seventeen'; 
$word_count = str_word_count($title_my); 
/****/ 
if($word_count < 5): 
$word_i = '12'; 
else: 
$word_i = '13'; 
endif; 
/****/ 
$lines = explode("\n", wordwrap($title_my,$word_i, "\n")); 
echo '<pre>'; 
$i = 1; 
foreach ($lines as &$value) { 
    echo '<span class="green'.$i.'">'.$value.' </span>'; 
} 
echo '</pre>'; 
?> 

回答

2

希望這將是一個有益的。這裏我們使用explodeimplodearray_maparray_chunk

Try this code snippet here

<?php 

$string="one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen"; 
$data=array_chunk(explode(" ", $string),3);//splitting words into group of 3 
$data=array_map(function($value){ 
    return sprintf("<span>%s</span>",implode(" ",$value)) ; //adding span tags around it. 
},$data); 

echo implode("\n",$data); 

輸出:

<span>one two three</span> 
<span>four five six</span> 
<span>seven eight nine</span> 
<span>ten eleven twelve</span> 
<span>thirteen fourteen fifteen</span> 
<span>sixteen seventeen</span> 
+0

@AwsmeSandy很樂意幫助你的朋友:) –

0

您也可以使用正則表達式來做好這項工作。在php preg_replace()中使用正則表達式。

$html = preg_replace("/(\w+\s\w+(\s\w+\s)?)/", "<span>$1</span>\n", $title_my); 

檢查它在demo

0

您也可以使用它

$title_my = 'one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen'; 
$lines = explode(" ", $title_my); 
$group=3; 
$k=1; 
echo '<pre>'; 
for ($i = 0; $i < count($lines); $i = $i + $group) { 
    echo '<span class="green' . $k . '">'; 
    for ($j = $i; $j < $i + $group; $j++) { 
     if (isset($lines[$j])) { 
      echo $lines[$j]." "; 
     } 
    } 
    echo ' </span></br>'; 
    $k++; 
} 
echo '</pre>'; 
相關問題