加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-04-17 12:53:48 所属栏目: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;

(编辑:银川站长网)

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