0

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

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

我想每 1-5 小时选择并添加一个随机机器人,之后他将被另一个机器人替换或被删除(并非所有机器人都必须同时在线)

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

提前致谢!

4

2 回答 2

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

至于问题的第二部分,您可以设置 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]];
于 2012-10-15T12:58:12.330 回答
0

A. 您可以使用cron job每小时调用一次脚本...获取随机bots数可以很容易地完成array_rand

$bots = array(153,122,173,124,173,132,184,188);
$current = $bots[array_rand($bots)];
var_dump($current);

B. 如果你有一个 continue 循环,你应该看看如何在无限循环中每 4 分钟回显一次,并用你的随机选择器替换 echo

于 2012-10-15T12:56:23.357 回答