gpt4 book ai didi

php - 二进制 in_array 搜索

转载 作者:行者123 更新时间:2023-12-05 08:19:20 25 4
gpt4 key购买 nike

我使用了很多 in_array 函数,这似乎拖慢了我的加载时间。我在 in_array php documentation 中找到了以下代码.作者指出“这个函数比 in_array() 快五倍。它使用二分查找,应该可以直接替代。”

function fast_in_array($elem, $array) 
{
$top = sizeof($array) -1;
$bot = 0;
while($top >= $bot)
{
$p = floor(($top + $bot) / 2);
if ($array[$p] < $elem) $bot = $p + 1;
elseif ($array[$p] > $elem) $top = $p - 1;
else return TRUE;
}
return FALSE;
}

但是该函数有效,但只有一半的时间,有时它不会输出它应该输出的所有内容,例如,如果我有一个包含苹果、橙子和柠檬的数组,并且对苹果和橙子进行匹配,它只会打印橙子或一些奇怪的东西。有人可以向我解释一下这个脚本到底做了什么,以及为什么它不能替代 in_array

最佳答案

它执行二进制搜索,假设数组是按总顺序排序的。如果数组未排序,它将失败。

关于php - 二进制 in_array 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com