Generador de palabras únicas

Cómo programar un generador de palabras únicas

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.

Compártelo...talvez alguién lo necesite!

Whatsapp Messenger Facebook Twitter

Visitado 708 veces | Publicado hace 1 año

CURSO FLUTTER DESARROLLO DE UNA APP RESTAURANT CON CARRITO DE COMPRA

Mira el temario del curso en el siguiente link
App Restaurant Flutter con Carrito de Compra

Logo Codea App

© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020