Generador de palabras únicas

Generador de palabras únicas

Generador de palabras únicas en Laravel

Generador de palabras únicas

Cómo programar un generador de palabras únicas

Consulta avanzada en Laravel para mostrar una palabra por cada letra del alfabeto de una BD MYSQL, usando like y métodos array para dicha tarea.

En ocaciones necesitamos mostrar o extraer de una lista de nombres de miles de nombre, solo aquellos que tengan la primera letra coincidente con el alfabeto. Ojo no queremos clasificar si no extraer de un conjunto de nombres que empiezen con la letra A  solo uno, y asi sucesivamente.

Pues para lograr ello podemos hacerlo usando Laravel veamos el código PHP:

for($i=65; $i<=90; $i++){
            $letra = chr($i);            
            $c=nombres::where("nombre","like",$letra."%")->pluck('nombre');
            if(!empty($c)){
                foreach ($c as $key) {
                    if(!empty($key)){
                        array_push($tags,$key);
                    } 
                }
            }
        }
  1. La primera línea los que hace es realizar un contador del 65 al 89 creciente
  2. La segunda línea nos trae la letra coincidente del código ASCII
  3. La tercera el la consulta a la tabla nombres donde para el campo nombre busque todoas las coincidencias iniciales  de la letra, pero que solo nos extraiga el campo nombre , más no los otros campos que pueden ser Id, etc..
  4. La cuarta línea verifica si hay resultados
  5. La quinta recorre y parsea el resultado
  6. la sexta verifica que para cada letra haya un resultado
  7. y la septima  array_push() lo que hace es agregar al array $tags la letra $key

Pues bien hasta ahi lo que se ha hecho es extraer todos los nombres sin excepción y se a almacenado en el array $tags

Ahora veamos el código para solo extraer un nombre por cada letra.

if(!empty($tags)){
                $elegido = array_rand($tags,1);
                array_push($itags,$tags[$elegido]);
            }
  1. La primera línea verifica si el array $tags no es vacio
  2. La segunda extrae una posición aleatoria del array
  3. La tercera agrega al array $itags el  elemento elegido $tags[$elegido];

Ahora vemos el código completo:

public function generadorNombresUnicos()
    {

        $itags=array();        
        for($i=65; $i<=90; $i++){
            $letra = chr($i);
            $tags=array();            
            $c=itags::where("nombre","like",$letra."%")->pluck('nombre');
            if(!empty($c)){
                foreach ($c as $key) {
                    if(!empty($key)){
                        array_push($tags,$key);
                    } 
                }
            }
            if(!empty($tags)){
                $elegido = array_rand($tags,1);
                array_push($itags,$tags[$elegido]);
            }
        }        
        return view('front.nombres',compact('itags'));
    }

Como puedes ver este còdigo nos permite extraer aleatoriamente de una lista basta de nombres, solo uno por cada letra del alfabeto, ideal para realizar aplicaciones web de interacción social. juegos, generadores de frases, acrósticos, etc.

PD. Me demoré un fin de semana en construir el código, bueno pero lo implemente con la librerìa fabrics para realizar un generador de acrósticos con cada nombre en forma aleatoria, más adelante publicaré los códigos para realizarlo.

Descarga código fuente 0

No hay descargable

Redactado por: , Leido 2646 veces

Más tutoriales de programación LARAVEL

Codea App
Codea App FullStack

Perú, México, Colombia, España, Venezuela, Argentina, Bolivia

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022