Php 如何根据当前时间选择随机索引
给定长度为N的数组,如何基于当前时间选择随机索引。基本上,我想根据当前时间生成一个从0到N的随机整数。这在数学上可能吗?想想你在寻找这样的东西:Php 如何根据当前时间选择随机索引,php,algorithm,Php,Algorithm,给定长度为N的数组,如何基于当前时间选择随机索引。基本上,我想根据当前时间生成一个从0到N的随机整数。这在数学上可能吗?想想你在寻找这样的东西: <?php $numbers = array(1,2,3,4,5,6,7,8,9,10); $random = date('i')/5 % count($numbers); echo $random . "<br />"; echo $numbers[$random]; ?> 您可以使用从
<?php
$numbers = array(1,2,3,4,5,6,7,8,9,10);
$random = date('i')/5 % count($numbers);
echo $random . "<br />";
echo $numbers[$random];
?>
您可以使用从
time()派生的值为随机数生成器设定种子。
:
如果没有随机数生成器,您可以简单地使用模:
echo (time() / 30 / 60) % N;
请注意,
mt_rand()
输出可能包含N本身,而模块版本不包含N。为什么必须基于时间?不仅仅是随机的?因为我希望它每30分钟选择一个相同的数字%N行吗?是的,使用UNIX时间戳%N肯定行,但它会每秒更改索引,我希望它每X分钟更改一次,这会每秒更改一次。。我想每X分钟改变一次。。我怎样才能把它代入这个等式?@adit?你试过了吗?它每分钟都在变化!因为date(‘i’)会把时间还给你!所以每分钟的计算都会改变!是的,那太快了,我想控制它。。我想每10分钟,15分钟换一次,etc@adit所以你想每5分钟有一个随机值,每30分钟都一样吗?好吧,@Rizier123,我想我明白你的意思了。OP可能需要进一步澄清他的问题。我认为这比我的答案更有效率;)
echo (time() / 30 / 60) % N;