PHP: array_search() 中实现的搜索算法是什么?
PHP: What is the searching algorithm implemented in array_search()?
我有一组要应用搜索功能的项目。我正在考虑对数组进行排序并暂时简单地应用二进制搜索,因为它不需要太复杂,但是如果我 运行 遇到问题,我会尝试其他方法。
我的问题是; array_search() 中使用的搜索算法是什么?如果它确实是二进制搜索,我可以使用它。
必须顺序查找,因为数组可能没有排序
如果您需要经常搜索数组,请使用 array_flip
将其转换为值成为键的关联数组。在数组中查找键是哈希查找。
这不是二进制搜索....它只是循环遍历数组直到找到第一个匹配元素....
的内部等价物
foreach($haystack as $key => $value) {
if ($value == $needle) {
return $key;
}
}
尽管对于快速搜索替代方案,Trie 可能比二分搜索更好
PHP 执行线性搜索 - here's the source
我有一组要应用搜索功能的项目。我正在考虑对数组进行排序并暂时简单地应用二进制搜索,因为它不需要太复杂,但是如果我 运行 遇到问题,我会尝试其他方法。
我的问题是; array_search() 中使用的搜索算法是什么?如果它确实是二进制搜索,我可以使用它。
必须顺序查找,因为数组可能没有排序
如果您需要经常搜索数组,请使用 array_flip
将其转换为值成为键的关联数组。在数组中查找键是哈希查找。
这不是二进制搜索....它只是循环遍历数组直到找到第一个匹配元素....
的内部等价物foreach($haystack as $key => $value) {
if ($value == $needle) {
return $key;
}
}
尽管对于快速搜索替代方案,Trie 可能比二分搜索更好
PHP 执行线性搜索 - here's the source