//比如现在有个数组$arr=array('语文'=>'yw','数学'=>'xx','英语'=>'yy','物理'=>'wl');//php接收用户输入的一段文字//假如为"英语好难啊,数学好简单"//那么我需要在这段文字中找出是否存在在数组中的key,即英语跟数学 ,得到他们对应的value值.//大概就是这样一个功能.
回复讨论(解决方案)
首先得分词
完后再匹配
分词有扩展模块 可以试一下.
这是关键字匹配,与分词没什么关系
$arr = array('语文'=>'yw','数学'=>'xx','英语'=>'yy','物理'=>'wl');$txt = "英语好难啊,数学好简单";foreach($arr as $k=>$v) $p[] = "/$k/e";preg_replace($p, '$res["$0"]=$arr["$0"]', $txt);print_r($res);Array
(
[数学] => xx
[英语] => yy
)
更高效的的可用 trie 算法。我发过,精华区可找到
这个需要分词搜索了 像Sphinx