我有一个像array("red","blue","azure"...)
这样的数组,我有一个可能包含一些单词的字符串。任务是获取给定字符串中所有匹配颜色的数组。
字符串示例:"红狐狸遇到蓝鲸"。它应该输出["红色","蓝色"]
给我一个起点继续。
谢谢, 马尔蒂阿赫
答案 0 :(得分:6)
str_word_count() format
参数1
或2
,然后是array_intersect() ....但请注意区分大小写,强制它全部小写第一
$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);
答案 1 :(得分:1)
如果您将要查找的所有值都放入数组中,请使用' |'作为分隔符,您可以在正则表达式中使用它来匹配所有值。
$valsArray = implode('|',$vals);
preg_match_all('/($valsArray)/',$string,$matches);
var_dump($matches);
答案 2 :(得分: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++){
if (in_array($array1[$i],$str)){
$words[]=$array1[$i];
}
}
print_r($words)
?>
&#13;
答案 3 :(得分:0)
编辑:
我发现我需要它更复杂。有可能这样做:
1)让我们找到数组中存在的所有颜色2)使用另一个数组将颜色翻译成其他语言
原始阵列[&#34;红色&#34;,&#34;蓝色&#34;,&#34;绿色&#34;]翻译阵列[&#34; punane&#34;,&#34; sinine& #34;&#34; roheline&#34;]
所以来自&#34;红狐狸遇到了蓝鲸&#34;我需要得到[&#34; punane&#34;,&#34; sinine&#34;]
谢谢,Martti
答案 4 :(得分:0)
人
这是使用匹配的已翻译数组
翻译已过滤项目的代码 foreach($filteredArray as $key => $value) {
$myTranslatedColors[] = $translatedArray[$key];
}
谢谢大家。