搜索 - PHP搜字符串在数组中相似键值(字符串需要拆)
伊谢尔伦
伊谢尔伦 2017-04-11 09:41:42
0
2
536

通过GET方式提交一个字段字符串 比如 /?lanmu=搜索的字符串

php处理 返回一个和此字符串相似的 栏目id
思路:
1 数组键名为栏目id 键值是栏目名 大约设置10来个
2 GET字符串中不确定它与其中哪个栏目相似
是否要做简单的过滤后 再匹配看下哪个栏目名和请求的字符串相似
3 如果有就返回这个栏目id 没有就返回别的

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(2)
小葫芦

相同的话好处理,数组相关函数里就有搜索的函数。

相似的话,你得首先定义相似,单不管怎样你都需要遍历数组来搜索。

黄舟

看题主描述,最大的困难应该是相似度的判断。

PHP判断两个字符串的相似度可使用的内置函数有:

similar_text(string1,string2,percent)

levenshtein(string1,string2,insert,replace,delete)

前者返回字符串之间的字符匹配数目,后者返回字符串之间的Levenshtein距离。字符匹配数目越多,字符就越相似;Levenshtein距离越小,则字符之间越相似。

如果题主需要特定的相似匹配需求,也可以自己实现算法。

整个PHP处理流程大致是:

  1. 初始准备工作:接收搜索字符串、设定相似度阙值(若相似度小于此阙值则判断为“栏目不存在”);

  2. 循环栏目数组,将栏目名称和搜索字符串通过相似判断算法一一比较,记录最大相似度栏目的相似度和键值;

  3. 判断相似度是否小于阙值,若小于阙值,则判定“栏目不存在”;若大等于阙值,则返回栏目键值,即id

不知道题主的栏目名称是中文还是英文,如果是中文,那相似度的判断就更为复杂些,内置函数的判断准确性就不高了。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!