Я ищу функцию, в которую я могу передать массив и начальное число в 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 и систему отслеживания ошибок, чтобы узнать об этой проблеме.