84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
通过GET方式提交一个字段字符串 比如 /?lanmu=搜索的字符串
php处理 返回一个和此字符串相似的 栏目id思路:1 数组键名为栏目id 键值是栏目名 大约设置10来个2 GET字符串中不确定它与其中哪个栏目相似是否要做简单的过滤后 再匹配看下哪个栏目名和请求的字符串相似3 如果有就返回这个栏目id 没有就返回别的
小伙看你根骨奇佳,潜力无限,来学PHP伐。
相同的话好处理,数组相关函数里就有搜索的函数。
相似的话,你得首先定义相似,单不管怎样你都需要遍历数组来搜索。
看题主描述,最大的困难应该是相似度的判断。
PHP判断两个字符串的相似度可使用的内置函数有:
PHP
similar_text(string1,string2,percent) levenshtein(string1,string2,insert,replace,delete)
前者返回字符串之间的字符匹配数目,后者返回字符串之间的Levenshtein距离。字符匹配数目越多,字符就越相似;Levenshtein距离越小,则字符之间越相似。
Levenshtein
如果题主需要特定的相似匹配需求,也可以自己实现算法。
整个PHP处理流程大致是:
初始准备工作:接收搜索字符串、设定相似度阙值(若相似度小于此阙值则判断为“栏目不存在”);
循环栏目数组,将栏目名称和搜索字符串通过相似判断算法一一比较,记录最大相似度栏目的相似度和键值;
判断相似度是否小于阙值,若小于阙值,则判定“栏目不存在”;若大等于阙值,则返回栏目键值,即id。
id
不知道题主的栏目名称是中文还是英文,如果是中文,那相似度的判断就更为复杂些,内置函数的判断准确性就不高了。
相同的话好处理,数组相关函数里就有搜索的函数。
相似的话,你得首先定义相似,单不管怎样你都需要遍历数组来搜索。
看题主描述,最大的困难应该是相似度的判断。
PHP
判断两个字符串的相似度可使用的内置函数有:前者返回字符串之间的字符匹配数目,后者返回字符串之间的
Levenshtein
距离。字符匹配数目越多,字符就越相似;Levenshtein
距离越小,则字符之间越相似。如果题主需要特定的相似匹配需求,也可以自己实现算法。
整个
PHP
处理流程大致是:初始准备工作:接收搜索字符串、设定相似度阙值(若相似度小于此阙值则判断为“栏目不存在”);
循环栏目数组,将栏目名称和搜索字符串通过相似判断算法一一比较,记录最大相似度栏目的相似度和键值;
判断相似度是否小于阙值,若小于阙值,则判定“栏目不存在”;若大等于阙值,则返回栏目键值,即
id
。不知道题主的栏目名称是中文还是英文,如果是中文,那相似度的判断就更为复杂些,内置函数的判断准确性就不高了。