2011-12-30 8 views
7

Digamos que tenía tres variables: -Haciéndose eco de una variable aleatoria

$first = "Hello"; 
$second = "Evening"; 
$third = "Goodnight!"; 

¿Cómo voy a repetir de forma aleatoria uno en la página, ya que me gustaría tener este módulo en mi página web barra lateral que cambiaría el cada actualización, aleatoriamente?

Respuesta

16

colocarlos en una matriz y elegir al azar con rand(). Los límites numéricos pasados ​​a rand() son cero para el inferior, como el primer elemento de la matriz, y uno menos que el número de elementos en la matriz.

$array = array($first, $second, $third); 
echo $array[rand(0, count($array) - 1)]; 

Ejemplo:

$first = 'first'; 
$second = 'apple'; 
$third = 'pear'; 

$array = array($first, $second, $third); 
for ($i=0; $i<5; $i++) { 
    echo $array[rand(0, count($array) - 1)] . "\n"; 
} 

// Outputs: 
pear 
apple 
apple 
first 
apple 

O mucho más sencilla, llamando array_rand($array) y pasando el resultado de nuevo como una clave de la matriz:

// Choose a random key and write its value from the array 
echo $array[array_rand($array)]; 
+0

¡Oh gracias :) – Frank

8

utilizar una matriz:

$words = array('Hello', 'Evening', 'Goodnight!'); 

echo $words[rand(0, count($words)-1)]; 
+0

pero estos no son sólo va a ser palabras, Va a ser bastante pesado html. Entonces, ¿podría reemplazar 'First' con una variable' $ first' y declararlo sobre el código y establecer un valor? – Frank

+3

Puede poner lo que desee en una matriz. Pero si está volcando html "pesado" en un valor razonable, es posible que desee reconsiderar su diseño. –

+0

Y con eso quieres decir qué? – Frank

3

Por qué no usar array_rand() para esto:

$values = array('first','apple','pear'); 
echo $values[array_rand($values)]; 
1

Genere un mejor valor aleatorio que puede usar mt_rand().

Ejemplo:

$first = "Hello"; 
    $second = "Evening"; 
    $third = "Goodnight!"; 
    $array = array($first, $second, $third); 
    echo $array[mt_rand(0, count($array) - 1)]; 
Cuestiones relacionadas