【问题标题】:Check if an item is in an array with a custom comparator in PHP检查项目是否在 PHP 中具有自定义比较器的数组中
【发布时间】:2023-03-05 12:07:01
【问题描述】:

我有一组根域(例如 google.com、somedomain.com,但不是 subdomain.domain.com),我想检查任意域是否具有相同的根域。任意域可以是 subdomain.domain.com,它会与 domain.com 匹配。

之前我只是使用 array_udiff 和我编写的自定义比较器函数过滤了一个输入域列表。我刚刚切换到必须单独检查每个输入域的方法,我不能只检查整个数组。

而不是使用大小为 1 的数组执行 array_udiff 并检查其大小是否不为 0,或者循环遍历数组并手动调用函数,我希望有一个函数已经这样做了。 PHP 有一个 in_array 函数,但它不允许自定义比较器。有这样的功能吗?

【问题讨论】:

    标签: php arrays comparison


    【解决方案1】:

    另一种方法:

    将您的根域存储在哈希结构中,这是一个以域名作为键的数组。这样一来,您就可以获得恒定的时间查找(例如通过array_key_exists),如果您一遍又一遍地执行操作,这很重要。

    至于比较,为什么不去掉域名来检查除域名之外的所有内容?

    【讨论】:

    • 天哪。我没有 parse_url 函数。我的代码中有十亿个巨大的正则表达式。这会让事情变得容易得多。我也不知道使用键会更快。我会试试的。
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多