<?php
$tstart = microtime(true);
$numberOfRandoms = 50000;
$uniques = array();
do {
$uniques[mt_rand(10000, 99999)] = true;
} while(count(array_keys($uniques)) < $numberOfRandoms);
$uniques = array_keys($uniques);
$elapsed = microtime(true) - $tstart;
echo "hek2mgl:\t\t\t" . $elapsed . PHP_EOL;
$tstart = microtime(true);
$uniques = range(10000, 99999);
shuffle($uniques);
$uniques = array_slice($uniques, 0, 500);
$elapsed = microtime(true) - $tstart;
echo "Dave Chen:\t\t\t" . $elapsed . PHP_EOL;
$tstart = microtime(true);
$uniques = array();
for($i = 0; $i < 500; $i++) {
do {
$code = mt_rand(10000, 99999);
} while(in_array($code, $uniques));
$uniques[] = $code;
}
$elapsed = microtime(true) - $tstart;
echo "Josh from Qaribou:\t\t" . $elapsed . PHP_EOL;
- Output for 5.3.7 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.7
Process exited with code 137.
preferences:
105.27 ms | 402 KiB | 113 Q