首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找字符串中与多个数组键匹配的所有单词。

查找字符串中与多个数组键匹配的所有单词。
EN

Stack Overflow用户
提问于 2015-07-10 13:13:19
回答 5查看 97关注 0票数 1

我有一个类似于array("red","blue","azure"...)的数组,我有一个字符串,它可能包含一些单词。任务是从给定的字符串中获取所有匹配颜色的数组。

字符串例子:“红狐遇到蓝鲸”。它应该输出“红色”,“蓝色”

给我一个继续前进的起点。

谢谢,玛蒂

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-10 13:24:04

count()format参数为12,然后是intersect().但是要注意区分大小写,首先要把所有的情况都降到更低的水平。

代码语言:javascript
复制
$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

票数 6
EN

Stack Overflow用户

发布于 2015-07-10 13:18:56

如果您将要查找的所有值都放入数组中,并将其用作分隔符,则可以在regex中使用此值来匹配所有值。

代码语言:javascript
复制
$valsArray = implode('|',$vals);

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

var_dump($matches);
票数 1
EN

Stack Overflow用户

发布于 2015-07-10 14:02:07

尝尝这个

代码语言:javascript
复制
<?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)

?>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31341700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档