PHP搜字符串在数组中相似键值(字符串需要拆)

发布于 2022-09-04 11:39:31 字数 201 浏览 18 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山川志 2022-09-11 11:39:31

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

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

冧九 2022-09-11 11:39:31

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

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

similar_text(string1,string2,percent)

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

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

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

整个PHP处理流程大致是:

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

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文