2010-11-22 25 views
7

que tiene una matriz simple como esto:PHP simple disposición aleatoria

$input = array('Line1', 'Line2', 'Line3'); 

y quiere hacerse eco de uno de los valores al azar. He hecho esto antes, pero no puedo recordar cómo lo hice y todos los ejemplos de array_rand parecen más complejos que lo que necesito.

¿Puede alguna ayuda? Gracias

Respuesta

18
echo $input[array_rand($input)]; 

array_rand() devuelve la clave, por lo que necesitan para conectarlo de nuevo en $input para obtener el valor.

+0

¿Cómo mostramos un solo resultado que es aleatorio? – thevoipman

4

Complejo? ¿Estamos en el mismo manual page?

$rand_key = array_rand($input, 1); 
+1

No los ejemplos en php.net fueron exagerados por lo que quería cuando todo lo que quería era algo simple. – Cameron

+0

@Cameron que se intentó: esa es la clave de matriz. Use '$ input [$ rand_key]' para acceder al elemento –

+0

Si * 0 * es la clave aleatoria seleccionada, es la clave aleatoria seleccionada. ¿Cuál es el problema con eso? – KingCrunch

2

array_rand le ayudará a seleccionar una clave aleatoria de una matriz. Desde allí puedes obtener el valor.

$randKey = array_rand($input); 
echo $input[$randKey]; 
2

Solo una función: array_rand().

echo $input[array_rand($input,1)]; 
+0

El ejemplo anterior de waiwai933 no tiene el 1, pero muestra el mismo resultado que su código. que hace el 1? – Cameron

+0

@Cameron mira en el manual. 'Si está seleccionando solo una entrada, array_rand() devuelve la clave para una entrada aleatoria. De lo contrario, devuelve una matriz de claves para las entradas aleatorias. Esto se hace para que pueda elegir las claves aleatorias, así como los valores de la matriz. –

+0

El * 1 * como segundo argumento es el valor predeterminado, por lo que puede omitirlo. – KingCrunch

3

Puede usar shuffle() y luego simplemente seleccionar el primer elemento.

shuffle($input); 
echo $input[0]; 

Pero me gustaría ir con el método array_rand().