【问题标题】:Select a variable randomly, but all variables should be equally selected from an array [duplicate]随机选择一个变量,但应从数组中平等选择所有变量[重复]
【发布时间】:2012-08-08 06:11:08
【问题描述】:

可能重复:
select a variable randomly, but each varaible should be equally selected from an array

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

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

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

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

【问题讨论】:

  • 上一个问题几分钟前就结束了,好吧,你已经在array_rand和sessions周围添加了一些cmets。尝试编写它,思考如何让它发挥作用的过程。当你得到 somewhere 时,发布一些代码并解释哪里出错了。那么你可能会得到一些帮助。
  • 我执行了这个函数 10 次。这里发生的情况就像“1”显示了 5 次,“2”显示了 3 次,“3”显示了 2 次。但是有没有可能让它每次显示3次???

标签: php drupal web-applications


【解决方案1】:

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

【讨论】:

【解决方案2】:

That 是你需要的:array_rand

例子:

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 1);
echo $input[$rand_keys[0]] . "\n";
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    相关资源
    最近更新 更多