首页  >  文章  >  后端开发  >  php操作字符串及数组实现相似度算法

php操作字符串及数组实现相似度算法

墨辰丷
墨辰丷原创
2018-06-12 17:07:192052浏览

这篇文章主要介绍了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(
&#39;AL&#39;=>"Alabama",
&#39;AK&#39;=>"Alaska",
&#39;AZ&#39;=>"Arizona",
&#39;AR&#39;=>"Arkansas",
&#39;CA&#39;=>"California",
&#39;CO&#39;=>"Colorado",
&#39;CT&#39;=>"Connecticut",
&#39;DE&#39;=>"Delaware",
&#39;DC&#39;=>"District Of Columbia",
&#39;FL&#39;=>"Florida",
&#39;GA&#39;=>"Georgia",
&#39;HI&#39;=>"Hawaii",
&#39;ID&#39;=>"Idaho",
&#39;IL&#39;=>"Illinois",
&#39;IN&#39;=>"Indiana",
&#39;IA&#39;=>"Iowa",
&#39;KS&#39;=>"Kansas",
&#39;KY&#39;=>"Kentucky",
&#39;LA&#39;=>"Louisiana",
&#39;ME&#39;=>"Maine",
&#39;MD&#39;=>"Maryland",
&#39;MA&#39;=>"Massachusetts",
&#39;MI&#39;=>"Michigan",
&#39;MN&#39;=>"Minnesota",
&#39;MS&#39;=>"Mississippi",
&#39;MO&#39;=>"Missouri",
&#39;MT&#39;=>"Montana",
&#39;NE&#39;=>"Nebraska",
&#39;NV&#39;=>"Nevada",
&#39;NH&#39;=>"New Hampshire",
&#39;NJ&#39;=>"New Jersey",
&#39;NM&#39;=>"New Mexico",
&#39;NY&#39;=>"New York",
&#39;NC&#39;=>"North Carolina",
&#39;ND&#39;=>"North Dakota",
&#39;OH&#39;=>"Ohio",
&#39;OK&#39;=>"Oklahoma",
&#39;OR&#39;=>"Oregon",
&#39;PA&#39;=>"Pennsylvania",
&#39;RI&#39;=>"Rhode Island",
&#39;SC&#39;=>"South Carolina",
&#39;SD&#39;=>"South Dakota",
&#39;TN&#39;=>"Tennessee",
&#39;TX&#39;=>"Texas",
&#39;UT&#39;=>"Utah",
&#39;VT&#39;=>"Vermont",
&#39;VA&#39;=>"Virginia",
&#39;WA&#39;=>"Washington",
&#39;WV&#39;=>"West Virginia",
&#39;WI&#39;=>"Wisconsin",
&#39;WY&#39;=>"Wyoming"
);
$input_state = &#39;Wiscsin&#39;;
$state = closest_word($input_state ,array_values($united_state_list));
echo $state;

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP版QQ登录口

PHP的三元运算符

php针对数组的定义、遍历及删除

以上是php操作字符串及数组实现相似度算法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn