2015-07-10 116 views
1

我有一個像array("red","blue","azure"...)這樣的數組,並且我有一個可能包含某些單詞的字符串。任務是獲取給定字符串中所有匹配顏色的數組。查找匹配多個數組鍵的字符串中的所有單詞

字符串示例:「紅狐遇到了藍鯨」。它應該輸出[「紅色」,「藍色」]

給我一個開始點繼續。

感謝, 馬爾蒂·

回答

6

str_word_count()12,然後一個一個array_intersect()format參數....但小心區分大小寫,這一切都強制小寫第一

$matchWords = array("red","blue","azure"); 
$sentence = "Red fox met a blue whale"; 

$result = array_intersect(
    $matchWords, 
    str_word_count(strtolower($sentence), 1) 
); 

var_dump($result); 

Demo

+0

做了這個工作,但以前也是如此。爲什麼這個人更好? –

1

如果你把所有你正在尋找到一個數組,使用值「|」作爲分隔符,您可以在正則表達式中使用它來匹配所有值。

$valsArray = implode('|',$vals); 

preg_match_all('/($valsArray)/',$string,$matches); 

var_dump($matches); 
0

試試這個

<?php 
 

 
$array1=array("red","blue","azure") ; 
 
$str="red fox met a blue whale"; 
 
$str=explode(" ",$str); 
 

 
echo $array1[0]; 
 
for($i=0;$i<sizeof($array1);$i++){ 
 
\t 
 
\t if (in_array($array1[$i],$str)){ 
 
$words[]=$array1[$i]; 
 

 
} 
 

 
\t } 
 
print_r($words) 
 

 
?>

0

編輯:

我想通了,我需要的是更爲複雜的。是否有可能做這樣的:

1)讓我們找到所有這一切都存在數組2中的字符串的顏色)使用另一個陣列

原始數組[「紅色」翻譯的顏色到其他語言,「藍色」,「綠色」]翻譯陣列[「褻瀆」,「sinine」,「roheline」]

因此,從「紅狐遇到藍鯨」我需要[「奸」 ]

謝謝,Martti

0

夥計。

這是翻譯使用匹配的翻譯陣列

foreach($filteredArray as $key => $value) { 
     $myTranslatedColors[] = $translatedArray[$key]; 
    } 

謝謝所有過濾項目的代碼。

相關問題