Есть скрипт:
<?
$arr = array();
for ($i = 0; $i < 50000001; ++$i)
$arr['a$i'] = true;
$start = microtime(true);
$b = isset($arr['a510000000']);
echo microtime(true) - $start;
$arr2 = array();
for ($i = 0; $i < 50000001; ++$i)
$arr[$i] = 'a$i';
$start = microtime(true);
$b = in_array('a510000000', $arr2);
echo microtime(true) - $start;
?>
Выполняю через `php ./script.php`
Первые 10 секунд он висит без вывода, видимо, заполняет первый массив. Потом выплёвывает время поиска в массиве через isset. Потом снова 10 секунд висит, видимо, заполняя второй массив. Потом выплёвывает время поиска через in_array.
А вот что скрипт делает потом в течение почти полминуты?