http://www.memetang.com/View/90 转载自
/**
* 智能匹配:计算关键词与用户信息的相似度,并匹配出信息
* $param $str string 用户回复的信息
* return array() 返回匹配成功的数据 匹配失败返回false
* @author yeguozheng
* @version V1.0 2014-3-14
*/privatefunctionintelligent_match($str){//获取匹配关键词缓存列表$list=D('Respond')->get_list_cache();$_tmp=array();//临时数组,存储临时数据定义$_jjj=0;//匹配计数定义//关键词缓存列表为空或者匹配种子为空则跳出if(!is_array($list)||!count($list)||$str==''){returnfalse;}//匹配列表进行遍历比较foreach($listas$k=>$v){similar_text(iconv('utf-8','gbk',$str),iconv('utf-8','gbk',$v['respond_keyword']),$similarity);//是否产生匹配度。如大于0则放入临时数组内,以备后面进行提取if(ceil($similarity)>0){//把相似度压入数组$_tmp[]=array_merge(array('similarity'=>$similarity),$v);$_jjj++;}}//如无匹配数据,跳出if($jjj===0){returnfalse;}//按匹配度进行重新排序$simi=array();foreach($_tmpas$kk){$simi[]=$kk['similarity'];}array_multisort($simi,SORT_DESC,$_tmp);//返回数据return$_tmp;}