Obtener elemento de matriz aleatoria en PHP

Subodh Poudel 20 junio 2023
  1. Use la función array_rand() para obtener un elemento de matriz aleatoria en PHP
  2. Use la función mt_rand() para obtener un elemento de matriz aleatoria en PHP
  3. Use la función shuffle() para obtener un elemento de matriz aleatoria en PHP
Obtener elemento de matriz aleatoria en PHP

Este tutorial presenta formas de obtener un elemento aleatorio de una matriz en PHP.

Use la función array_rand() para obtener un elemento de matriz aleatoria en PHP

Podemos usar la función array_rand() para obtener el elemento aleatorio de una matriz en PHP. Utiliza el generador de números aleatorios Mersenne Twister para el algoritmo de aleatorización.

La función funciona tanto para las matrices numéricas como para las matrices asociativas. La función array_rand() proporciona una o más claves aleatorias de una matriz.

Para entender mejor la función, saltemos a su sintaxis.

array_rand($array, $num)

Podemos especificar una matriz como el primer parámetro de la función. El elemento aleatorio se toma de la matriz.

El parámetro, $num, es el número de valores aleatorios que se devolverán. El valor por defecto del parámetro $num es 1.

Si especificamos valores mayores que 1, la función devolverá múltiples claves aleatorias en una matriz. En consecuencia, la función array_rand() puede devolver valores en forma de matriz, cadena o entero.

Devuelve un valor de cadena cuando la matriz de entrada es una matriz asociativa que contiene cadenas como claves. Para la matriz indexada numéricamente, el valor de retorno es un número entero.

Podemos aprovechar la función array_rand() para encontrar el elemento aleatorio de un array. Dado que la función devuelve una clave aleatoria de una matriz, podemos usar la clave como índice para encontrar el elemento aleatorio.

Por ejemplo, cree dos variables de matriz, $matriz y $edad. Cree un arreglo indexado en la variable $planetas y un arreglo asociativo en las variables $edad.

A continuación, escribe una función personalizada find_random_item($array). Dentro de la función, use la función array_rand() con $array como parámetro.

Asigne la función a la variable $rand_key. Luego, use la variable $rand_key en $array y muestre el elemento aleatorio.

Después de cerrar el cuerpo de la función, invoque la función find_random_item() una vez con la matriz $planets y nuevamente con la matriz $age como argumentos.

Así es como podemos encontrar los elementos aleatorios de un arreglo usando la función array_rand() de PHP.

Código de ejemplo:

<?php
$planets = array("Mercury", "Venus", "Earth", "Mars", "Jupiter");
$age = array("Paul"=>"35", "Bob"=>"37", "Jack"=>"43");

function find_random_item($array){
 $rand_key= array_rand($array);
 $rand_element = $array[$rand_key];
 echo $rand_element."<br>";
}

find_random_item($planets);
find_random_item($age);

Producción :

Mars
37

Use la función mt_rand() para obtener un elemento de matriz aleatoria en PHP

También podemos usar la función mt_rand() para obtener un elemento de matriz aleatorio. El nombre de la función se deriva del generador de números aleatorios Mersenne Twister.

La función devuelve un entero aleatorio. Podemos usar ese entero aleatorio como índice para obtener un elemento de matriz aleatorio.

Necesitamos especificar el rango del número aleatorio que se devolverá como parámetros en la función. Veamos la sintaxis de la función mt_rand().

mt_rand($min, $max)

Aquí, $min es el valor mínimo que se puede generar y $max es el valor máximo. Por ejemplo, para la función mt_rand(10,20), el número aleatorio puede ser de 10 a 20.

El primer paso es generar una clave aleatoria para la matriz. Podemos elegir 0 para la opción $min y el número uno menor que la longitud del array para la opción $max.

Como resultado, se generará una clave aleatoria para la matriz. Podemos usar la función count() para generar la longitud de la matriz.

Después de encontrar la clave aleatoria, podemos encontrar el elemento aleatorio.

Por ejemplo, cree una matriz de índice en la variable $countries. A continuación, utilice la función mt_rand() donde 0 es el primer parámetro y count($countries)-1 es el segundo parámetro.

Almacene la clave aleatoria en una variable llamada $rand_key. A continuación, utilice $rand_key como índice en la matriz $countries para generar un elemento aleatorio a partir de la matriz.

Podemos usar la función mt_rand() solo para la matriz indexada para la generación de un elemento aleatorio.

Código de ejemplo:

$countries = array("Malaysia", "Vietnam", "Ecuador", "Malta", "Indonesia");

$rand_key = mt_rand(0, count($countries) - 1);
$rand_element = $countries[$rand_key];
echo $rand_element;

Producción :

Ecuador

Use la función shuffle() para obtener un elemento de matriz aleatoria en PHP

Uno de los métodos más simples para obtener un elemento de matriz aleatorio es la función shuffle(). La función toma una matriz como parámetro y mezcla aleatoriamente el orden de los elementos en la matriz.

La función devuelve un valor booleano. Como resultado, se forma una nueva matriz.

Luego, podemos elegir cualquier elemento de la matriz para obtener un elemento aleatorio.

Por ejemplo, cree una matriz en la variable $countries. Utilice la matriz $countries como parámetro de la función $shuffle.

A continuación, utilice la instrucción echo para elegir el índice 0 de la matriz $countries. Como resultado, se elige una matriz aleatoria.

Podemos usar este método tanto para matrices indexadas como asociativas.

Código de ejemplo:

$countries = array("Malaysia", "Vietnam", "Ecuador", "Malta", "Indonesia");
shuffle($countries);
echo $countries[0];

Producción :

Malta
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Array