我有一个类似于array("red","blue","azure"...)的数组,我有一个字符串,它可能包含一些单词。任务是从给定的字符串中获取所有匹配颜色的数组。
字符串例子:“红狐遇到蓝鲸”。它应该输出“红色”,“蓝色”
给我一个继续前进的起点。
谢谢,玛蒂
发布于 2015-07-10 13:24:04
count()的format参数为1或2,然后是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);Demo
发布于 2015-07-10 13:18:56
如果您将要查找的所有值都放入数组中,并将其用作分隔符,则可以在regex中使用此值来匹配所有值。
$valsArray = implode('|',$vals);
preg_match_all('/($valsArray)/',$string,$matches);
var_dump($matches);发布于 2015-07-10 14:02:07
尝尝这个
<?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)
?>
https://stackoverflow.com/questions/31341700
复制相似问题