-3

可能重复:
随机选择一个变量,但每个变量都应从数组中同等选择

我需要一个函数(最好是 PHP),它一次从数组中随机选择一个变量,但满足以下条件。假设我在数组中有 3 个变量。每次它应该选择一个变量。但如果我执行该函数 10 次,则每个变量应至少选择 3 次。IE。最后应该平等地选择所有变量我无法从数组中删除或取消设置任何变量,因为函数的执行发生在页面刷新中,因此数组将包含所有值

见人,我知道我可以在 php 中使用 array_rand 函数来随机选择一个变量。在这里它不能保证我可以实现上述逻辑(如果我执行这个函数 10 次,每个变量应该被选择至少 3 次)。

其他方式我可以利用会话。但我想看看是否有其他方法可以代替使用会话或 cookie。

示例:我执行了此功能 10 次。这里发生的情况就像“1”显示了 5 次,“2”显示了 3 次,“3”显示了 2 次。但是有没有可能让它每次显示3次???

4

2 回答 2

2

您已经定义了相互排斥的要求:“随机选择”和“均等选择”(或“均匀分布”)!你不能两者都做。

于 2012-08-08T06:16:13.093 回答
1

就是你需要的:array_rand

例子 :

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 1);
echo $input[$rand_keys[0]] . "\n";
?>
于 2012-08-08T06:16:46.270 回答