php查询相似度最高的字符串的方法
程序员文章站
2023-11-11 18:19:16
本文实例讲述了php查询相似度最高的字符串的方法。分享给大家供大家参考。具体如下:
根据传入的字符串和数组,返回数组中相似度最高的字符串
1. php代码如下:&nbs...
本文实例讲述了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程序设计有所帮助。