PHP模式匹配从更精确到更少的数组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP模式匹配从更精确到更少的数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在 PHP中创建一个匹配字符串的函数,让我们说“1234567”具有最佳的匹配前缀,尽管有多个匹配,选择最佳.

例如,如果我们拥有所有这些:

(1,12,123,1234,456,56,7,3456,234567)

Input = "1234567"

输出应为=“1234”

因为匹配最佳的前缀(尽管1,12和123匹配也不比1234好,尽管234567是最佳匹配,但不是前缀).

我不知道这个函数是否认在PHP语言中实现

解决方法

按长度从最长到最短排序前缀.然后返回第一场比赛.

function bestMatch($input,$PRefixes)
{
    usort($prefixes,function($a,$b) { return strlen($b) - strlen($a); });

    foreach ($prefixes as $prefix) {
        if (strncmp($input,$prefix,strlen($prefix)) === 0) {
            return $prefix;
        }
    }

    return false; // or whatever you want to return for "no match"
}

如果您需要使用相同的前缀列表多次执行此操作,您可能需要对列表进行一次排序,然后执行foreach循环以止多次排序.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP模式匹配从更精确到更少的数组全部内容,希望文章能够帮你解决PHP模式匹配从更精确到更少的数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。