欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php查询相似度最高的字符串的方法

程序员文章站 2022-06-08 20:13:57
本文实例讲述了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程序设计有所帮助。