PHP每小时随机

时间:2012-10-15 12:48:17

标签: php arrays random sorting

我的php生锈了,我正在尝试使用PHP代码将一个不同的用户ID从一组可能的用户添加到以下数组中。

'online_users'            => array(54)
'bots_ids'                => array(153,122,173,124,173,132,184,188)

我想每1-5个小时选择一个随机机器人,之后他会被另一个机器人取代或者只是被删除(不是所有的机器人都必须在线同时进行)

我尝试将种子设置为当前小时数除以随机数,但似乎不起作用。

提前致谢!

2 个答案:

答案 0 :(得分:1)

我认为你在这种情况下正在寻找一个array_rand()。它将从阵列中选择最多N个随机密钥并将它们放在它们自己的数组中。这将让你做你想做的事。

$online_bots = array('4','5','6');
$bot_ids = array('1','2','3');

$random_bots = array_rand($bot_ids,1); // Random id from list
$bot_going_offline = array_shift($online_bots); // pop a bot from online

$online_bots[]= $bot_ids[$random_bots]; // add random bot from list
$bot_ids[] = $bot_going_offline; // move the oldest online bot into common pool

至于问题的第2部分,您可以设置cron来在每小时执行脚本以触发更改。或者,对于在线/离线列表,您可以拥有一个可以每小时随机选择的公共机器人池。

$num_bots = rand ( 0, count($bot_ids));
$random_bots = array_rand($bot_ids,1); // Random id from list
for ($x = 0; X< $num_bots; x++)
   $online[] = $bot_ids[$random_bots[$x]];

答案 1 :(得分:0)

一个。您可以每小时使用cron job来调用脚本...使用bots

可以轻松完成随机array_rand
$bots = array(153,122,173,124,173,132,184,188);
$current = $bots[array_rand($bots)];
var_dump($current);

B中。如果你有一个继续循环,你应该看How to echo something every 4 minutes while in an endless loop并用随机选择器替换echo