Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据当前时间选择随机索引_Php_Algorithm - Fatal编程技术网

Php 如何根据当前时间选择随机索引

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]; ?> 您可以使用从

给定长度为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];

?>

您可以使用从
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;