En una programación php hoy me surgió un problema: necesito obtener un valor aleatorio utilizando php de una variable gestionada con un array.
Me encontré con la función rand() de php con la cual pude resolver el problema y luego conocí array_rand() que creo que es mucho mejor para mi cuestión sobre obtener un valor aleatorio de un array.
Usando rand() para obtener un valor aleatorio de un array. La función rand() de php devuelve un número aleatorio comprendido, en este caso, entre 0 y $max, y la he usado en este ejemplo para obtener un valor aleatorio del índice del array, así, al tener una posición aleatoria del índice puedo obtener un valor aleatorio del array con $mi_array[$numaleatorio].
Usando array_rand() para obtener el valor aletaorio de un array.
Visto la función rand() me encontré con array_rand() que hace justamente lo que quiero sin necesidad de dar rodeos.
array_rand() necesita especificar el array de entrada y el número de entradas a elegir, si se pone 1 devuelve un valor aleatorio del array, si se pone más de 1 devuelve un array con valores escogidos aleatoriamente de los valores del array original. Si se pone un número de entradas a elegir mayor al número de entradas del array original nos dará error.
Es interesante utilizar la función shuffle() para desordenar el array antes de utilizar array_rand().
Por tanto así puede quedar una función para elegir un valor de un array de forma aleatoria:
Me encontré con la función rand() de php con la cual pude resolver el problema y luego conocí array_rand() que creo que es mucho mejor para mi cuestión sobre obtener un valor aleatorio de un array.
Usando rand() para obtener un valor aleatorio de un array. La función rand() de php devuelve un número aleatorio comprendido, en este caso, entre 0 y $max, y la he usado en este ejemplo para obtener un valor aleatorio del índice del array, así, al tener una posición aleatoria del índice puedo obtener un valor aleatorio del array con $mi_array[$numaleatorio].
Usando array_rand() para obtener el valor aletaorio de un array.
Visto la función rand() me encontré con array_rand() que hace justamente lo que quiero sin necesidad de dar rodeos.
array_rand() necesita especificar el array de entrada y el número de entradas a elegir, si se pone 1 devuelve un valor aleatorio del array, si se pone más de 1 devuelve un array con valores escogidos aleatoriamente de los valores del array original. Si se pone un número de entradas a elegir mayor al número de entradas del array original nos dará error.
Es interesante utilizar la función shuffle() para desordenar el array antes de utilizar array_rand().
Por tanto así puede quedar una función para elegir un valor de un array de forma aleatoria: