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程序设计有所帮助。

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

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论