我有一個像array("red","blue","azure"...)
這樣的數組,並且我有一個可能包含某些單詞的字符串。任務是獲取給定字符串中所有匹配顏色的數組。查找匹配多個數組鍵的字符串中的所有單詞
字符串示例:「紅狐遇到了藍鯨」。它應該輸出[「紅色」,「藍色」]
給我一個開始點繼續。
感謝, 馬爾蒂·
我有一個像array("red","blue","azure"...)
這樣的數組,並且我有一個可能包含某些單詞的字符串。任務是獲取給定字符串中所有匹配顏色的數組。查找匹配多個數組鍵的字符串中的所有單詞
字符串示例:「紅狐遇到了藍鯨」。它應該輸出[「紅色」,「藍色」]
給我一個開始點繼續。
感謝, 馬爾蒂·
str_word_count()與1
或2
,然後一個一個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);
如果你把所有你正在尋找到一個數組,使用值「|」作爲分隔符,您可以在正則表達式中使用它來匹配所有值。
$valsArray = implode('|',$vals);
preg_match_all('/($valsArray)/',$string,$matches);
var_dump($matches);
試試這個
<?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)
?>
編輯:
我想通了,我需要的是更爲複雜的。是否有可能做這樣的:
1)讓我們找到所有這一切都存在數組2中的字符串的顏色)使用另一個陣列
原始數組[「紅色」翻譯的顏色到其他語言,「藍色」,「綠色」]翻譯陣列[「褻瀆」,「sinine」,「roheline」]
因此,從「紅狐遇到藍鯨」我需要[「奸」 ]
謝謝,Martti
夥計。
這是翻譯使用匹配的翻譯陣列
foreach($filteredArray as $key => $value) {
$myTranslatedColors[] = $translatedArray[$key];
}
謝謝所有過濾項目的代碼。
做了這個工作,但以前也是如此。爲什麼這個人更好? –