我使用了很多in_array
功能,这似乎拖慢了我的加载时间。in_array
我在php 文档中找到了以下代码。作者说“这个函数比 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
.