当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-16 10:46:58 浏览: 评论:0 

这篇文章主要介绍了php查询相似度最高的字符串的方法,涉及php操作字符串及数组实现相似度算法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下,本文实例讲述了php查询相似度最高的字符串的方法,分享给大家供大家参考,具体如下:

根据传入的字符串和数组,返回数组中相似度最高的字符串

1. PHP代码如下:

  1. function closest_word($input$words) { 
  2.     $shortest = -1; 
  3.     foreach ($words as $word) { 
  4.      $lev = levenshtein($input$word); 
  5.      if ($lev == 0) { 
  6.       $closest = $word
  7.       $shortest = 0; 
  8.       break
  9.      } 
  10.      if ($lev <= $shortest || $shortest < 0) { 
  11.       $closest = $word
  12.       $shortest = $lev
  13.      } 
  14.     } 
  15.     return $closest

2. 代码示例如下:

  1. // 根据传入的州名(可能客户有输错),返回相似度最高的州名称 
  2. $united_state_list = array
  3. 'AL'=>"Alabama"
  4. 'AK'=>"Alaska"
  5. 'AZ'=>"Arizona"
  6. 'AR'=>"Arkansas"
  7. 'CA'=>"California"
  8. 'CO'=>"Colorado"
  9. 'CT'=>"Connecticut"
  10. 'DE'=>"Delaware"
  11. 'DC'=>"District Of Columbia"
  12. 'FL'=>"Florida"
  13. 'GA'=>"Georgia"
  14. 'HI'=>"Hawaii"
  15. 'ID'=>"Idaho"
  16. 'IL'=>"Illinois"
  17. 'IN'=>"Indiana"
  18. 'IA'=>"Iowa"
  19. 'KS'=>"Kansas"
  20. 'KY'=>"Kentucky"
  21. 'LA'=>"Louisiana"
  22. 'ME'=>"Maine"
  23. 'MD'=>"Maryland"
  24. 'MA'=>"Massachusetts"
  25. 'MI'=>"Michigan"
  26. 'MN'=>"Minnesota"
  27. 'MS'=>"Mississippi"
  28. 'MO'=>"Missouri"
  29. 'MT'=>"Montana"
  30. 'NE'=>"Nebraska"
  31. 'NV'=>"Nevada"
  32. 'NH'=>"New Hampshire"
  33. 'NJ'=>"New Jersey"
  34. 'NM'=>"New Mexico"
  35. 'NY'=>"New York"
  36. 'NC'=>"North Carolina"
  37. 'ND'=>"North Dakota"
  38. 'OH'=>"Ohio"
  39. 'OK'=>"Oklahoma"
  40. 'OR'=>"Oregon"
  41. 'PA'=>"Pennsylvania"
  42. 'RI'=>"Rhode Island"
  43. 'SC'=>"South Carolina"
  44. 'SD'=>"South Dakota"
  45. 'TN'=>"Tennessee"
  46. 'TX'=>"Texas"
  47. 'UT'=>"Utah"
  48. 'VT'=>"Vermont"
  49. 'VA'=>"Virginia"
  50. 'WA'=>"Washington"
  51. 'WV'=>"West Virginia"
  52. 'WI'=>"Wisconsin"
  53. 'WY'=>"Wyoming" 
  54. ); 
  55. $input_state = 'Wiscsin'
  56. $state = closest_word($input_state ,array_values($united_state_list)); 
  57. echo $state;

Tags: php字符串相似度最高

分享到: