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;

希望本文所述对大家的php程序设计有所帮助。

原文:http://www.jb51.net/article/62090.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值