Categorías: PHP y MySQL

PHP array_rand(): Selección aleatoria de elementos en arrays

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:

Sintaxis de PHP array_rand()

Veamos la sintaxis de esta función de PHP extraída de su web oficial:

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:

$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:

$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.

compartir
Publicado por
Aner Barrena