【问题标题】:PHP: What is the searching algorithm implemented in array_search()?PHP:array_search() 中实现的搜索算法是什么?
【发布时间】:2015-03-30 19:30:19
【问题描述】:

我有一个要应用搜索功能的项目数组。我正在考虑对数组进行排序并现在简单地应用二进制搜索,因为它不需要太复杂,但是如果我遇到问题,我会尝试其他方法。

我的问题是; array_search() 中使用的搜索算法是什么?如果它确实是二进制搜索,我可以使用它。

【问题讨论】:

  • 我会说线性搜索

标签: php arrays algorithm search


【解决方案1】:

PHP 执行线性搜索 - here's the source

【讨论】:

    【解决方案2】:

    这不是二分搜索....它只是遍历数组直到找到第一个匹配元素....内部等价于

    foreach($haystack as $key => $value) { 
        if ($value == $needle) { 
            return $key; 
        }
    }
    

    虽然对于快速搜索替代方案,Trie 可能比二分搜索更好

    【讨论】:

      【解决方案3】:

      它必须是顺序搜索,因为数组可能没有排序。

      如果您需要经常搜索数组,请使用array_flip 将其转换为关联数组,其中值成为键。在数组中查找键是哈希查找。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2017-01-06
        • 2010-12-14
        • 1970-01-01
        相关资源
        最近更新 更多