加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-30 10:31:10 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php查询相似度最高的字符串的方法,涉及php操作字符串及数组实现相似度算法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下,本文实例讲述了php查询相似度最高的字符串的方法,分享给大家供大家参考,具体如下: 根据传入的字符串和数组
  这篇文章主要介绍了php查询相似度最高的字符串的方法,涉及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;
   

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读