Я ищу функцию, в которую я могу передать массив и начальное число в PHP и получить "рандомизированный" массив. Если бы я передал тот же массив и то же самое семя снова, я получил бы тот же самый вывод.
Я пробовал этот код
//sample array
$test = array(1,2,3,4,5,6);
//show the array
print_r($test);
//seed the random number generator
mt_srand('123');
//generate a random number based on that
echo mt_rand();
echo "\n";
//shuffle the array
shuffle($test);
//show the results
print_r($test);
Но это не похоже на работу. Есть мысли о том, как это сделать?
Этот вопрос танцует вокруг проблемы, но он старый, и никто не дал фактического ответа о том, как это сделать: могу ли я рандомизировать массив, предоставив начальное число и получив тот же порядок? - "Да, но как?
Обновить
Пока ответы работают с PHP 5.1 и 5.3, но не с 5.2. Так получилось, что машина, на которой я хочу запустить, использует 5.2.
Кто-нибудь может привести пример без использования mt_rand? Он "сломан" в php 5.2, потому что он не даст одинаковую последовательность случайных чисел, основанную на одном и том же семени. Посетите страницу php mt_rand и систему отслеживания ошибок, чтобы узнать об этой проблеме.