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