<?php
function prepare($num) {
echo "preparing array with $num elements ... ";
$array = array();
for ($i=0; $i<$num; $i++) {
$array[uniqid('', true)] = true;
}
echo 'OK', PHP_EOL;
return $array;
}
function test($num, $cycles, $tries) {
echo "@cycles: ", $cycles, PHP_EOL;
echo "@length: ", $num, PHP_EOL;
echo "@tries: ", $tries, PHP_EOL;
$array = prepare($num);
$key = uniqid('', true);
echo "array_key_exists: ";
$times = array();
for ($j=0; $j<$tries; $j++) {
$t = microtime(true);
for($i = 0; $i < $cycles; $i++) {
array_key_exists($key, $array);
}
$times[$j] = microtime(true) - $t;
}
printf('%0.4f second(s)'.PHP_EOL, array_sum($times)/$tries);
echo "isset: ";
$times = array();
for ($j=0; $j<$tries; $j++) {
$t = microtime(true);
for($i = 0; $i < $cycles; $i++) {
isset($array[$key]);
}
$times[$j] = microtime(true) - $t;
}
printf('%0.4f second(s)'.PHP_EOL, array_sum($times)/$tries);
}
$cycles = 100000;
$tries = 5;
echo '----------------------', PHP_EOL;
test(1000, $cycles, $tries);
echo '----------------------', PHP_EOL;
test(10000, $cycles, $tries);
echo '----------------------', PHP_EOL;
test(100000, $cycles, $tries);
echo '----------------------', PHP_EOL;
preferences:
31.68 ms | 402 KiB | 5 Q