En este tutorial explicaré cómo se puede generar números aleatorios dentro de una entrada en PHP. Para poder probarlo vamos a necesitar tener un servidor web local o remoto. Lo primero que debemos hacer es crear un archivo PHP y agregarlo en una carpeta de nuestro servidor web.
Luego crearemos una función que reciba tres parámetros: el número mínimo que se puede obtener, el número máximo que se puede obtener y la cantidad máxima de números que vamos a obtener. En ese orden los vamos a crear.
function shuffle_nums($min, $max, $count) { }
Luego agregaremos un arreglo que contenga todos los números dentro de ese rango, para lograrlo usamos la función range propia de PHP.
function shuffle_nums($min, $max, $count) { $nums = range($min, $max); }
La función range recibe como parámetros un número mínimo y un máximo y devuelve todos los números en ese rango incluyendo los parámetros. Luego vamos a cambiar el orden de los números en el arreglo de una manera aleatoria. Para eso existe otra función de PHP llamada suffle.
function shuffle_nums($min, $max, $count) { $nums = range($min, $max); shuffle($nums); }
Luego agregamos solo la cantidad de elementos que queremos obtener dentro de un arreglo haciendo uso de un bucle for quedando el código como se muestra a continuación.
function shuffle_nums($min, $max, $count) { $nums = range($min, $max); shuffle($nums); $response = array(); for($i=0;$i<$count && $i<count($nums);$i++) { array_push($response, $nums[$i]); } return $response; }
Tenemos que notar que se ha tenido bastante cuidado en no sobrepasar el límite de elementos disponibles dentro de arreglo inicial haciendo uso de la función count de PHP. Por último, llamamos a la función que hemos creado. El código final nos permite mostrar en el navegador el arreglo que devuelve la función que hemos creado.
<?php function shuffle_nums($min, $max, $count) { $nums = range($min, $max); shuffle($nums); $response = array(); for($i=0;$i<$count && $i<count($nums);$i++) { array_push($response, $nums[$i]); } return $response; } echo "<pre>"; print_r(shuffle_nums(30, 10, 20)); echo "</pre>"; ?>