我使用了很多in_array功能,似乎让我的加载时间陷入困境.我在in_arrayphp文档中找到了以下代码.作者声明"这个函数比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;
}
Run Code Online (Sandbox Code Playgroud)
然而这个功能起作用,但只有一半的时间,有时它不会输出它应该输出的所有内容,例如,如果我有一个苹果,橙子和柠檬的数组,并且匹配苹果和橙子它只会打印橙子或一些奇怪的东西.有人可以向我解释这个脚本到底是做什么的,以及为什么它不能替代它in_array.