php查询相似度最高的字符串的方法 |
本文实例讲述了php查询相似度最高的字符串的方法 。分享给大家供大家参考 。具体如下: 根据传入的字符串和数组,返回数组中相似度最高的字符串 1. PHP代码如下: function closest_word($input, $words) { $shortest = -1; foreach ($words as $word) { $lev = levenshtein($input, $word); if ($lev == 0) { $closest = $word; $shortest = 0; break; } if ($lev <= $shortest || $shortest < 0) { $closest = $word; $shortest = $lev; } } return $closest; } 2. 代码示例如下: // 根据传入的州名(可能客户有输错),返回相似度最高的州名称 $united_state_list = array( AL=>"Alabama", AK=>"Alaska", AZ=>"Arizona", AR=>"Arkansas", CA=>"California", CO=>"Colorado", CT=>"Connecticut", DE=>"Delaware", DC=>"District Of Columbia", FL=>"Florida", GA=>"Georgia", HI=>"Hawaii", ID=>"Idaho", IL=>"Illinois", IN=>"Indiana", IA=>"Iowa", KS=>"Kansas", KY=>"Kentucky", LA=>"Louisiana", ME=>"Maine", MD=>"Maryland", MA=>"Massachusetts", MI=>"Michigan", MN=>"Minnesota", MS=>"Mississippi", MO=>"Missouri", MT=>"Montana", NE=>"Nebraska", NV=>"Nevada", NH=>"New Hampshire", NJ=>"New Jersey", NM=>"New Mexico", NY=>"New York", NC=>"North Carolina", ND=>"North Dakota", OH=>"Ohio", OK=>"Oklahoma", OR=>"Oregon", PA=>"Pennsylvania", RI=>"Rhode Island", SC=>"South Carolina", SD=>"South Dakota", TN=>"Tennessee", TX=>"Texas", UT=>"Utah", VT=>"Vermont", VA=>"Virginia", WA=>"Washington", WV=>"West Virginia", WI=>"Wisconsin", WY=>"Wyoming" ); $input_state = Wiscsin; $state = closest_word($input_state ,array_values($united_state_list)); echo $state; 希望本文所述对大家的php程序设计有所帮助 。 |