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


Posted in PHP onMarch 12, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
PHP实现通用alert函数的方法
Mar 11 #PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 #PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 #PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 #PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 #PHP
php模拟服务器实现autoindex效果的方法
Mar 10 #PHP
php浏览历史记录的方法
Mar 10 #PHP
You might like
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
php数据库备份还原类分享
2014/03/20 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python中的choice()方法使用详解
2015/05/15 Python
Python NumPy库安装使用笔记
2015/05/18 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python和Sublime整合过程图示
2019/12/25 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
求网格中的黑点分布
2013/11/06 面试题
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
Pygame Time时间控制的具体使用详解
2021/11/17 Python
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技
SQL Server使用导出向导功能
2022/04/08 SQL Server
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js