<?php
$a = [];
//$s = 123456;
$s = 's6tbdfgj222dJGk';
$rs = str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 10);
$numGen = function() {
return rand(1, 9999999);
};
$strGen = function() {
global $rs;
return substr(str_shuffle($rs), 0, rand(10, 100));
};
//$gen = $numGen;
$gen = $strGen;
foreach ([10000, 1000, 100, 10] as $c) {
echo "N={$c}\n";
for ($i = 0; $i < $c; $i++) {
$a[$i] = $gen();
// if ($a[$i] === $s) { $a[$i] = null; }
// if ($i === 0) { $a[$i] = $s; }
// if ($i === $c / 2) { $a[$i] = $s; }
// if ($i === $c - 1) { $a[$i] = $s; }
}
$t = microtime(1);
$e = in_array($s, $a);
echo "in_array: ", microtime(1) - $t, PHP_EOL;
$t = microtime(1);
$a = array_flip($a);
$e = isset($a[$s]);
echo "flip+isset: ", microtime(1) - $t, PHP_EOL;
$t = microtime(1);
$a = array_flip($a);
$e = @$a[$s] === null;
echo "flip+null comparison: ", microtime(1) - $t, PHP_EOL;
$t = microtime(1);
$e = array_search($s, $a);
echo "array_search: ", microtime(1) - $t, PHP_EOL;
echo PHP_EOL;
}
preferences:
29.53 ms | 402 KiB | 5 Q