Obtener elemento de matriz aleatoria en PHP
-
Use la función
array_rand()
para obtener un elemento de matriz aleatoria en PHP -
Use la función
mt_rand()
para obtener un elemento de matriz aleatoria en PHP -
Use la función
shuffle()
para obtener un 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 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.
LinkedInArtículo relacionado - PHP Array
- Cómo determinar la primera y la última iteración en un bucle de foreach en PHP
- Cómo convertir un array a una cadena en PHP
- Cómo obtener el primer elemento de un array en PHP
- Cómo hacer eco o imprimir un array en PHP
- Cómo eliminar un elemento de un array en PHP
- Cómo quitar elementos de array vacíos en PHP