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

3

我有一个项目数组需要应用搜索功能,目前我正在考虑先对其进行排序,然后简单地应用二分查找,因为它不需要太复杂的操作,但如果遇到问题,我将尝试其他方法。

我的问题是:在array_search()中使用的搜索算法是什么?如果确实是二分查找,那么我可以使用它。


我会说线性搜索 - undefined
3个回答

3

由于数组可能未排序,因此必须使用顺序搜索。

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


2

它不是一个二分查找...它只是循环遍历数组,直到找到第一个匹配的元素...内部等效于

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

虽然对于快速搜索,Trie树可能比二分查找更好。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接