【问题标题】:Randomly picking out of an array in PHP随机从PHP中的数组中挑选出来
【发布时间】:2011-02-28 18:27:45
【问题描述】:

我有一个具有 1、5、6、9、11、45、56 等值的数组。我要做的是随机选择一个值,也许是 6。然后我想随机选择一个不包括 6 的值(所以没有双打)。然后是一个随机值,不包括最后两个,全部来自数组内部。有什么帮助吗?我试图在没有 while 循环的情况下执行此操作,但如果有必要,那就这样吧。

【问题讨论】:

  • while 循环有什么问题?
  • 你总是可以使用递归(en.wikipedia.org/wiki/Recursion),但本质上最终结果是一样的,一个循环。
  • 你最终需要得到什么?具有随机元素顺序的相同数组?
  • 随机取什么值?这是一个家庭网站...

标签: php random


【解决方案1】:

我建议如下:

# pick a random key in your array
$rand_key = array_rand($your_array);

# extract the corresponding value
$rand_value = $your_array[$rand_key];

# remove the key-value pair from the array
unset($your_array[$rand_key]);

请参阅:array_randunset

【讨论】:

    【解决方案2】:

    先将数组打乱,然后作为栈使用:

    $a = array(1, 5, 6, 9, 11, 45, 56);
    shuffle($a);
    
    // now you can have your picks:
    $pick = array_pop($a);
    $pick = array_pop($a);
    $pick = array_pop($a);
    $pick = array_pop($a);
    ...
    

    【讨论】:

      【解决方案3】:

      我可能会shuffle 数组并获取第一个/最后一个 x 值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-09
        • 2013-11-26
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        相关资源
        最近更新 更多