views:

101

answers:

3

I am currently working with PHP code that random selects colors:

<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(); ?>">

What I would prefer to do is define a list of preferred colors in one PHP file, and then randomly sample an element from this list in the code above.

What is the correct PHP code for randomly sampling such a list of colors? How would you define the list of colors?

A: 

Just create an array of colors and select one entry using rand(0, to) as the index.

0x90
A: 
<?php

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

I would do like most have suggested, define your colors as an array in one php file:

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

And then use array_rand to select one:

...background:<?= $colors[array_rand($colors, 1)] ?>;" class=...
+1 for the only answer to suggest the internal function `array_rand`...
ircmaxell