Repaso a la función de PHP array_rand() con la que podemos seleccionar de forma aleatoria uno o varios elementos de un array.
Otras funciones similares para trabajar con arrays son:
- array_search(): Buscar elementos en arrays.
- array_shuffle(): Orden aleatorio de arrays.
- array_merge(): Unir uno o varios arrays.
Sintaxis de PHP array_rand()
Veamos la sintaxis de esta función de PHP extraída de su web oficial:
1 |
array_rand(array, numero) |
Os explico los parámetros y resultado de la función:
- array (Obligatorio): El array del cual queremos obtener el valor aleatorio.
- numero (Opcional): Es el número de valores devueltos que queremos obtener.
Dependiendo del número de elementos requeridos la función devolverá una clave o un array con las diferentes claves de los elementos.
Ejemplo de PHP array_rand()
Con este ejemplo vamos a ver cómo obtener elementos de un array de forma aleatoria:
1 2 3 4 |
$colores = array("rojo", "azul", "amarillo", "verde", "negro", "blanco"); echo "Array original"; var_export ($colores); echo "Valor aleatorio: ". $colores[array_rand($colores)]; |
Os explico el código para obtener un elemento aleatorio:
- Creamos un array ($colores) con indexación numérica con los diferentes valores.
- Sacamos su contenido por pantalla con la función var_export().
- Por último con la función echo mostramos el valor del elemento aleatorio del array $colores. La clave la obtenemos con la función array_rand().
Código para obtener más de un elemento aleatorio:
1 2 3 4 5 6 7 |
$colores = array("rojo", "azul", "amarillo", "verde", "negro", "blanco"); echo "Array original"; var_export ($colores); $seleccion = array_rand($colores,3); echo "Valor aleatorio1: ". $seleccion[0]; echo "Valor aleatorio2: ". $seleccion[1]; echo "Valor aleatorio3: ". $seleccion[2]; |
Explico el código superior:
- Creamos un array ($colores) con indexación numérica con los diferentes valores.
- Sacamos su contenido por pantalla con la función var_export().
- Guardamos en el array $seleccion las 3 claves de los elementos aleatorios obtenida con array_rand().
- Por último sacamos los 3 valores por pantalla.
Otras funciones para trabajar con arrays
Os recomiendo leer este otro post sobre funciones para trabajar con arrays en PHP.