2013-05-18 26 views
0

我有這樣一個獲得2個字在每個數組值

$words2= 'If you want to have a preformatted block within a list, indent by eight spaces.'; 

$forbiddenwords=array("word1","word2"); 

foreach($words2 as $b=>$v) 
{ 
    if(in_array($v, $forbidden)){ 
    unset($words2[$b]); 

    } 
} 

$words2 = array_values($words2); 

$words2=implode(' ',$words2); 

$words2 = implode(' ',array_chunk(mb_split('\s', $words2), 2)); 

echo "<pre>"; 
print_r($words2); 
echo "</pre>"; 

代碼我想要的是創建一個數組,它的每一個值,包含從字符串2個字。上面的代碼不工作-implode()不通過關聯arrays-也是我想有結果的工作就是這樣

array (
$words2[0]=>'If you' 
$words2[1]=>'you want' 
$words2[1]=>'want to' 
... 
) 

回答

0

您是過於複雜的事情,無論是刪除黑名單句話的時候和當構造單詞對的數組時。

要刪除黑名單:

$inputWords = mb_split('\s+', 'If you want to have a preformatted block...'); 
$forbiddenWords = array("want", "have"); 

$filtered = array_diff($inputWords, $forbiddenWords); // removes blacklisted 

每2個過濾字加入到一個字符串:

$pairs = array_chunk($filtered, 2); // array of arrays 
$pairs = array_map(function($a) { return implode(' ', $a); }, $pairs); 

See it in action