//比如现在有个数组
$arr=array('语文'=>'yw','数学'=>'xx','英语'=>'yy','物理'=>'wl');
//php接收用户输入的一段文字
//假如为"英语好难啊,数学好简单"
//那么我需要在这段文字中找出是否存在在数组中的key,即英语跟数学 ,得到他们对应的value值.
//大概就是这样一个功能.

解决方案 »

  1.   

    这是关键字匹配,与分词没什么关系$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 算法。我发过,精华区可找到
      

  2.   

    这个需要分词搜索了  像Sphinx