【问题标题】:PHP see how many characters are equalPHP看多少个字符相等
【发布时间】:2013-06-09 15:56:12
【问题描述】:

我有一个完整的值的字符串,用逗号分隔。不用说,这可以通过$strings = explode(',',$fullstring); 完成。

现在,我需要将用户提交的值与该值进行比较,以查看它的“平等程度”。理想情况下,我想检查最多一个字母/符号/数字/...是否不相等。例如,如果硬编码的字符串是'table':

  • 'tabl' 会是真的
  • 'tablz' 是真的
  • 'tab' 会是假的

如果你明白我的意思。当然,字符串也可以包含空格、撇号、数值。我真的不知道我应该如何开始。我已经设置了一个过滤器来检查值是否相等(使用if(in_array(strtolower($userValue),array_map('strtolower',$strings)))),但是在 else 子句中我需要一些方法来检测我刚刚解释的内容。

【问题讨论】:

    标签: php regex compare


    【解决方案1】:

    听起来您正在寻找的功能最好由 levenshtein 提供。

    查看http://php.net/manual/en/function.levenshtein.php 的示例以及如何使用它的说明。

    【讨论】:

    • 哇,太好了,我从没听说过!在网上搜索了一些东西,没想到会这么简单!
    • 知道它是如何处理大写字母的吗?在文档中没有真正看到任何内容,但它是否处理大写与小写作为替代?
    • 距离认为它们不同,但您可以先对两个字符串应用一些“过滤器”,例如将它们都转换为小写。
    • 函数区分大小写。如果要精确匹配,请先使用 strtolower
    • 是的,我同时测试了它,就像一个魅力!谢谢各位!
    【解决方案2】:

    计算两个字符串之间的 Levenshtein 距离:http://php.net/manual/en/function.levenshtein.php 并检查距离是否小于某个阈值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2014-05-07
      相关资源
      最近更新 更多