【问题标题】:PHP Serve 25 numbers in random orderPHP以随机顺序提供25个数字
【发布时间】:2011-06-22 11:14:26
【问题描述】:

我想随机提供一个包含 25 个元素的数组。 我不知道该怎么做。

假设数组有从 0 到 24 的数字。 我想制作这样的东西:

5,4,6,7,8,9,10,20,21,22,23,24,25,1,2,11,14,15... etc

所以如果生成器输出 23 它不应该再次输出它

谢谢

【问题讨论】:

标签: php arrays random


【解决方案1】:
$numbers = range(0, 24);
shuffle($numbers);

print_r($numbers);

【讨论】:

    【解决方案2】:

    你的意思是像

    $array;
    $shuffledArray = shuffle($array);
    

    在您的具体示例中,您正在讨论输出一个逗号分隔的从 0 到 24 的数字字符串

    echo implode(',', shuffle(range(0,24));
    

    【讨论】:

      【解决方案3】:
      for($i = 0; $i < 25; ++$i) {
          $array[] = $i;
      }
      shuffle($array);
      print_r($array);
      

      shuffle 功能在这些情况下非常有用。

      【讨论】:

        【解决方案4】:
        <?php
        $numbers = range(0, 24);
        shuffle($numbers);
        foreach ($numbers as $number) {
        echo "$number ";
        }
        ?>
        

        http://php.net/manual/en/function.shuffle.php

        【讨论】:

          【解决方案5】:
          $r = range(1,25);
          shuffle($r);
          var_dump($r);
          

          【讨论】:

            【解决方案6】:

            如果你已经有了数组,你可以使用名为shuffle()的PHP函数:

            http://php.net/manual/en/function.shuffle.php

            如果没有,请像这样构建数组:

            <?php
                $max = 24;
                $num_array = array();
                for($i=0;$i<=$max;$i++) $num_array[] = $i;
                shuffle($num_array);
            ?>
            

            更新:我从未见过(由 KingCrunch 提供)使用的范围函数。最好用那个!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-19
              • 1970-01-01
              • 1970-01-01
              • 2011-03-28
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多