【问题标题】:PHP randomly select from a listPHP从列表中随机选择
【发布时间】:2010-08-11 18:40:23
【问题描述】:

我目前正在使用随机选择颜色的 PHP 代码:

<div onclick="location.href='<?php the_permalink() ?>';" 
    style="cursor:pointer;background:#<?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?>;" 
    class="post bg thickbox" 
    id="thickbox post-<?php the_ID(); ?>">

我更愿意在一个 PHP 文件中定义一个首选颜色列表,然后在上面的代码中从这个列表中随机抽取一个元素。

随机抽样这样一个颜色列表的正确 PHP 代码是什么?您将如何定义颜色列表?

【问题讨论】:

  • &lt;?php echo rand(0, 9); ?&gt;&lt;?php echo rand(0, 9); ?&gt;&lt;?php echo rand(0, 9); ?&gt;&lt;?php echo rand(0, 9); ?&gt;&lt;?php echo rand(0, 9); ?&gt;&lt;?php echo rand(0, 9); 可能只是 for(i=0; i&lt;6; i++) echo rand(0,9);。无论如何,提出的其他解决方案肯定更好
  • 他想要一个预定义颜色的列表,而不是一些完全随机的颜色。反正这个解决方案很脏。
  • @0x90:我知道,我只是指出for 循环已经让他的代码清晰了 10 倍
  • @nico,你真的可以用printf("%06X\n", rand(0, 0xFFFFFF));清理干净
  • @evilclown: 不会给出相同的结果 :) 真的,我并没有提出解决方案,只是指出您通常不需要重复相同的指令 6 次,仅此而已.

标签: php random sampling


【解决方案1】:

我会像大多数人建议的那样,将您的颜色定义为一个 php 文件中的数组:

$colors = array("red", "blue", "#00ff00");

然后用array_rand选择一个:

...background:<?= $colors[array_rand($colors, 1)] ?>;" class=...

【讨论】:

    【解决方案2】:

    只需创建一个颜色数组并使用 rand(0, to) 作为索引选择一个条目。

    【讨论】:

      【解决方案3】:
      <?php
      
      function getRandomColor(){
          $a = array('#ff5500', '#000066', '#555555');
          $indice = rand(0, count($a)-1);
          return $a[$indice];
      }
      

      【讨论】:

        猜你喜欢
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 2017-11-19
        相关资源
        最近更新 更多