-
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;
出处:http://www.phpfensi.com/php/20210516/15393.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式