PHP:在array_search()中实现的搜索算法是什么?

时间:2015-01-31 11:05:42

标签: php arrays algorithm search

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

它不是二进制搜索....它只是循环遍历数组,直到它找到第一个匹配元素....内部等价物

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

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

答案 2 :(得分:1)

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