2010-08-11 3 views
3

Сейчас я работаю с PHP код, который случайным выбирает цвета: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-код для случайного отбора таких списков цветов? Как бы вы определили список цветов?

+0

' nico

+0

Он хочет список предопределенных цветов, а не какой-то совершенно случайный цвет. Во всяком случае, это решение очень грязное. – 0x90

+0

@ 0x90: Я знаю, я просто указывал, что цикл 'for' уже сделал бы его код в 10 раз более ясным – nico

ответ

15

Я хотел бы сделать, как большинство из них предложили, определять цвета, как массив в один PHP файл:

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

, а затем использовать array_rand, чтобы выбрать один:

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

+1 для единственного ответа, чтобы предложить внутреннюю функцию 'array_rand' ... – ircmaxell

0

Просто создайте массив цветов и выберите одну запись, используя индекс rand (0, to) в качестве индекса.

0
<?php 

function getRandomColor(){ 
    $a = array('#ff5500', '#000066', '#555555'); 
    $indice = rand(0, count($a)-1); 
    return $a[$indice]; 
}