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


person Joseph Turian    schedule 11.08.2010    source источник
comment
<?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); мог просто быть for(i=0; i<6; i++) echo rand(0,9);. В любом случае другие предложенные решения определенно лучше   -  person nico    schedule 11.08.2010
comment
Ему нужен список предопределенных цветов, а не какой-то совершенно случайный цвет. В любом случае, это решение очень грязное.   -  person 0x90    schedule 11.08.2010
comment
@0x90: Я знаю, я просто указал, что цикл for уже сделал бы его код в 10 раз яснее.   -  person nico    schedule 11.08.2010
comment
@nico, ты действительно мог бы убраться с printf("%06X\n", rand(0, 0xFFFFFF));   -  person    schedule 11.08.2010
comment
@evilclown: что не дает того же результата :) На самом деле, я не предлагал решение, просто указывал, что вам обычно не нужно повторять одну и ту же инструкцию 6 раз, вот и все.   -  person nico    schedule 12.08.2010


Ответы (2)


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

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

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

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

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

person 0x90    schedule 11.08.2010