如何使 php shuffle 函数使用种子,以便当我使用相同的种子时,shuffle 函数将输出相同的数组。我读到随机播放是自动播种的。有没有办法获得所使用的随机播放的种子,或者如何使用自定义种子创建/模拟随机播放?
您无法检索 shuffle 使用的种子,但您可以模拟 shuffle 并修复您自己的种子:
$array = range(1, 10);
function seededShuffle(array &$array, $seed) {
mt_srand($seed);
$size = count($array);
for ($i = 0; $i < $size; ++$i) {
list($chunk) = array_splice($array, mt_rand(0, $size-1), 1);
array_push($array, $chunk);
}
}
$seed = date('Ymd');
seededShuffle($array, $seed);
var_dump($array);
Run Code Online (Sandbox Code Playgroud)
这将每天设置不同的种子,但在一天中它将使用相同的种子并以相同的顺序对数组进行洗牌;明天将是与今天不同的随机洗牌
今天(2015 年 6 月 6 日),顺序应该是
3, 6, 9, 2, 7, 1, 8, 5, 10, 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |