Hace poco hice un post para generar fechas aleatorias. Ahora se me ocurrió hacer uno para generar nombres de personas de manera aleatoria.
Es un método poco eficaz y requiere que nosotros pongamos los datos, pero es lo único que se me ocurre.
Si queremos algo que sea más fácil que esto, podemos echarle un ojo a Faker, una librería para generar muchos datos de todos los tipos… fechas, nombres, html, números de teléfono, números, etcétera.
Para hacer esto necesitamos dos arreglos, o en el peor de los casos uno. El primero para nombres, y el segundo para apellidos. Por ejemplo, podemos tener dos arreglos así:
<?php
$nombres = ["josé", "pedro", "raúl", "maría", "luisa", "adriana", "angela", "alan"];
$apellidos = ["pérez", "rodriguez", "hernández", "martínez", "garcía", "marín", "sánchez", "smith", "rivera", "alderson"];
?>
Para generar un nombre aleatorio, el algoritmo es sencillo:
Para generar un número aleatorio podemos usar mt_rand
que toma como argumentos un límite inferior y un límite superior, y devuelve un número entre esos límites.
Así que podemos llamar a mt_rand y pedirle que nos devuelva un número entre 0 y la longitud del arreglo menos 1.
Para obtener la longitud de un arreglo podemos usar count. De esta forma, podríamos elegir un elemento aleatorio así:
<?php
$elementoAleatorio = $arreglo[ mt_rand(0, count($arreglo) - 1) ];
?>
Ahora apliquemos esto a los arreglos que tenemos para generar un nombre completo:
<?php
$nombres = ["josé", "pedro", "raúl", "maría", "luisa", "adriana", "angela", "alan"];
$apellidos = ["pérez", "rodriguez", "hernández", "martínez", "garcía", "marín", "sánchez", "smith", "rivera", "alderson"];
$nombreAleatorio = $nombres[ mt_rand(0, count($nombres) -1) ];
$apellidoAleatorio = $apellidos[ mt_rand(0, count($apellidos) -1) ];
$otroApellidoAleatorio = $apellidos[ mt_rand(0, count($apellidos) -1) ];
echo "$nombreAleatorio $apellidoAleatorio $otroApellidoAleatorio";
?>
La salida será aleatoria, pero puede parecerse a:
angela hernández pérez
Si añadimos más nombres y apellidos, podremos generar una mayor cantidad de nombres. Ahora que ya lo tenemos, vamos a encapsular todo en una función.
<?php
/*
Generar nombres completos aleatorios alimentándose de
dos arreglos: uno para nombres y otro para apellidos
Los arreglos se pasan por referencia
@author parzibyte
@param array $nombres Un arreglo con nombres
@param array $apellidos Un arreglo con apellidos, de donde se sacarán el primer y el segundo apellido
@return string El nombre completo generado de manera aleatoria
*/function generar_nombre_aleatorio(&$nombres, &$apellidos){
$nombreAleatorio = $nombres[ mt_rand(0, count($nombres) -1) ];
$apellidoAleatorio = $apellidos[ mt_rand(0, count($apellidos) -1) ];
$otroApellidoAleatorio = $apellidos[ mt_rand(0, count($apellidos) -1) ];
return "$nombreAleatorio $apellidoAleatorio $otroApellidoAleatorio";
}
?>
Para llamar a la función tenemos que pasarle dos arreglos que nosotros mismos hayamos definidos. Sería más fácil definirlos dentro de la función, pero no sería bueno para el rendimiento, así que los llamamos por referencia.
Además, de esta forma podemos pasarle un arreglo que hayamos recuperado de una base de datos, o cualquier arreglo que nosotros definamos con nuestros propios nombres.
Un ejemplo de llamar a la función sería:
<?php
$nombres = ["josé", "pedro", "raúl", "maría", "luisa", "adriana", "angela", "alan"];
$apellidos = ["pérez", "rodriguez", "hernández", "martínez", "garcía", "marín", "sánchez", "smith", "rivera", "alderson"];
$nombre = generar_nombre_aleatorio($nombres, $apellidos);
echo $nombre; // Salida de ejemplo -> pedro smith pérez
?>
Y así es como llegamos al final de esto.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios
Gracias por el post, lo comparto!