2015-07-10 111 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]; 
    } 

谢谢所有过滤项目的代码。

相关问题