En la programación, la eficiencia y optimización son fundamentales. Para ganar en velocidad y precisión, PHP ofrece una estructura de control llamada switch, especialmente útil al momento de realizar búsquedas segmentadas.
¿Qué es switch en PHP?
En PHP, switch es una estructura de control, similar a una serie de sentencias IF. Útil cuando deseamos comparar una misma variable o expresión con diversos valores y ejecutar un fragmento de código distinto en cada caso. Es decir, actúa como una herramienta que permite realizar búsquedas paso a paso.
¿Cómo declarar la sentencia switch?
El empleo de switch() en PHP se reduce a unos sencillos pasos:
Se inicia al escribir la palabra switch, seguida de unos paréntesis. Dentro de estos, se precisa la condición a la que se le realizarán las búsquedas.
switch("ubicacion")
Una vez establecida la condición, se abren los corchetes para albergar todos los casos posibles.
switch("ubicacion"){}
Se utiliza la palabra reservada casé seguida del tipo de caso y dos puntos.
switch("ubicacion"){case"clima":}
Posteriormente, se recurre a la palabra reservada array_search(), que admite dos parámetros: el valor a buscar y el arreglo donde se realizará la búsqueda.
El siguiente paso es tuyo, te invitamos a agregar el caso de búsqueda de turismo a este algoritmo. Comparte tu código en la sección de comentarios y permite que el código hable por nosotros.
Contribución del curso creada por: Silfredo Ibarra
<?php
/*Tener una lista de ciudades con un
clima y una ubicación específica*/functionrecomendacion(){ $clima =array("Bogota"=>"Frio","Monteria"=>"Calido","Medellin"=>"Templado"); $ubicacion =array("Guajira"=>"Norte","Leticia"=>"Sur","Santander"=>"Este","Antioquia"=>"Oeste"); $turismo =array("Santa Marta"=>"Mar","Villavicencio"=>"Llanos","Riocha"=>"Desierto","Quindio"=>"Valle");switch("turismo"){case"clima": echo array_search("Frio", $clima);break;case"ubicacion": echo array_search("Norte", $ubicacion);break;case"turismo": echo array_search("Mar", $turismo);break;}}recomendacion();?>
Muchas gracias! :D
gracias 😉
No se les olvide renombrar el documento de buscador.php por el de index.php para que les sirva
ya lo hice, porque no sirve si cambio el nombre?
presumo por que index.php es el nombre por defecto para llamar desde el navegador virtual, o toma el primero nombre desde la lista. yo tenia el mismo fallo
Acá el buscador completo con parámetros en la función de recomendacion
<?php
/***************************
Tener una lista de ciudades
con un clima y una ubicacion
especifica
***************************/functionrecomendacion($caracteristica, $tipoCaracteristica){ $weather =array("Bogota"=>"frio","Monteria"=>"calido","Medellin"=>"templado"); $location=array("Guajira"=>"norte","Leticia"=>"sur","Santander"=>"este","Antioquia"=>"oeste"); $tourism =array("Santa Marta"=>"mar","Villavicencio"=>"llanos","Riohacha"=>"desierto","Quindio"=>"valle");switch($tipoCaracteristica){case"clima": echo array_search($caracteristica, $weather);break;case"ubicacion": echo array_search($caracteristica, $location);break;case"turismo": echo array_search($caracteristica, $tourism);break;default: echo "No fue posible encontrar una ciudad con esas caracteristicas o criterios de busqueda, por favor intente nuevamente";break;}}/***********************************************
Se debe invocar la función recomendación
con teniendo en cuenta que el primer parámetro
de la función es la característica de la ciudad
y el segundo parámetro es el nombre del caso del
switch en el cual se va a buscar
************************************************/recomendacion("valle","turismo");?>
Excelente aporte.
Me salia igual, el parámetro de turismo no es reconocido en el código, muchas gracias por su aporte.
Este es mi propuesta de solución
<?php
/* list of cities with weather and location*/functionsuggest($busqueda){ $weather =array("Bogota"=>"Frio","Monteria"=>"calido","Medellin"=>"templado"); $location=array("Guajira"=>"norte","Leticiia"=>"sur","Santander"=>"este","Antioquia"=>"oeste"); $turism =array("Santa Marta"=>"mar","Villavicencio"=>"llanos","Riohacha"=>"desierto","Quindio"=>"valle");switch($busqueda){case"weather": echo array_search("calido",$weather);break;case"location": echo array_search("norte",$location);break;case"turism": echo array_search("valle",$turism);break;}}echo "<p>";suggest("weather");echo "</p>";echo "<p>";suggest("location");echo "</p>";echo "<p>";suggest("turism");echo "</p>";?>
<?php
/* Tener una lista de ciudades con un clima y ubicación especial */functionrecomendacion(){ $clima =array('Bogota'=>'frio','Monteria'=>'calido','Medellin'=>'templado'); $ubicacion =array('Guajira'=>'Norte','Leticia'=>'Sur','Santander'=>'Este','Antioquia'=>'Oeste'); $turismo =array('Santa Marta'=>'Mar','Villavicencio'=>'Llano','Riohacha'=>'Desierto','Quindio'=>'Valle');switch("turismo"){case"clima": echo array_search("frio", $clima);break;case"ubicacion": echo array_search("Sur", $ubicacion);break;case"turismo": echo array_search("Mar", $turismo);break;}}recomendacion();?>
Quiero realizar mi primer aporte en platzi compartiendo mi código. El cuál al principio no me funcionaba pero realizando una serie de pruebas y filtros pude conocer donde estaba el error y solucionarlo.
<?php
// Este programa realiza recomendaciones a partir de // criterios de busqueda$weather =array("Bogotá"=>"Frio","Monteria"=>"Cálido","Medellin"=>"Templado");$location=array("Guajira"=>"Norte","Leticia"=>"Sur","SAntander"=>"Este","Antioquia"=>"Oeste");$tourism =array("Santa Marta"=>"Mar","Villavicencio"=>"Llano","Rioacha"=>"Desierto","Quindio"=>"Valle");$busqueda =readline("Seleccione la opción de su interes:1.Clima2.Ubicación3.Turismo ");switch($busqueda){case"1": $clima =readline("Seleccione el tipo de clima qué desea:1.Frio2.Cálido 3.Templado ");switch($clima){case"Frio": $recomen =array_search($clima, $weather); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Cálido": $recomen =array_search($clima, $weather); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Templado": $recomen =array_search($clima, $weather); echo "El lugar recomendado es: ","<p>", $recomen;break;default: echo "No se encontraron recomendaciones que se ajusten a ti";}break;case"2": $ubica =readline("Seleccione la ubicación de su interes :Norte-Sur-Este-Oeste ");switch($ubica){case"Norte": $recomen =array_search($ubica, $location); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Sur": $recomen =array_search($ubica, $location); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Este": $recomen =array_search($ubica, $location); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Oeste": $recomen =array_search($ubica, $location); echo "El lugar recomendado es: ","<p>", $recomen;break;default: echo "No se encontraron recomendaciones que se ajusten a ti";}break;case"3": $turism =readline("Seleccione lugar turístico de interes :Mar-Llano-Desierto-Valle ");switch($turism){case"Mar": $recomen =array_search($turism, $tourism); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Llano": $recomen =array_search($turism, $tourism); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Desierto": $recomen =array_search($turism, $tourism); echo "El lugar recomendado es: ","<p>", $recomen;break;case"Valle": $recomen =array_search($turism, $tourism); echo "El lugar recomendado es: ","<p>", $recomen;break;default: echo "No se encontraron recomendaciones que se ajusten a ti";}break;default: echo "No se encontraron recomendaciones que se ajusten a ti";}?>
porque siempre habla como si fueramos mujeres solamente?
Dejo el desafio de la clase:
<?php
/* Tener una lista de ciudades con un clima y una ubicación especifica */functionrecomendacion(){ $clima =array("Bogota"=>"frio","Monteria"=>"calido","Medellin"=>"templado"); # Array asociativo
$ubicacion =array("Guajira"=>"norte","Leticia"=>"sur","Santander"=>"este","Antioquia"=>"oeste"); $turismo =array("Santa Marta"=>"mar","Villavicencio"=>"llanos","Riohacha"=>"desierto","Quindio"=>"valle");switch("turismo"){case"clima": echo array_search("frio", $clima); # Se usa para mostrar en texto el codigo
break; # Finaliza el casecase"ubicacion": echo array_search("norte", $ubicacion);break;case"turismo": echo array_search("mar", $turismo);break;} # Para realizar busquedas
}recomendacion();?>
Buenas tardes
envio mi reto::
<?php
function eligueTuAmbienteFavorita($Dato,$Informacion)
{
$climate = array(
'Tu Ambiente Favorito es: Antartida' => 'frio',
'Tu Ambiente Favorito es: Maimi' => 'calido',
'Tu Ambiente Favorito es: Sau Paulo ' => 'templado'
);
$ubicacion = array(
'Posicion de esta cuidad: Guajira' => 'Norte',
'Posicion de esta cuidad: Leticia' => 'Sur',
'Posicion de esta cuidad: Santander' => 'Este',
'Posicion de esta cuidad: Antioquia' => 'Oeste'
);
$sigtseeing = array(
'En Esta Cuidad Encuentras: Santa Marta' => 'Mar',
'En Esta Cuidad Encuentras: Villavicencio' => 'Llano',
'En Esta Cuidad Encuentras: Riohacha' => 'Desierto',
'En Esta Cuidad Encuentras: Quindio' => 'Valle'
);
switch($Dato)
{
case 'climate':
echo array_search($Informacion, $climate);
break;
case 'ubicacion':
echo array_search($Informacion, $ubicacion);
break;
case 'sigtseeing ':
echo array_search($Informacion, $sigtseeing );
break;
}
}
eligueTuAmbienteFavorita("climate", "calido");
?>
Buenos días
A mime aparece un error cuando le doy en la opción run para que lea el código.
Agradecería si me indican cual fue el error que cometí ya que revise varias veces y no lo encuentro.
Gracias
el archivo debe de llamarse index.php
ALGUIEN SABE POR QUE A MI NO ME MOSTRÓ EL RESULTADO EN LA CONSOLA?
Hola, alguien me podría hacer el favor de ayudar diciendome que problema hay en este codigo, ya que al ejecutar me arroja error:
Un poco tarde la respuesta pero, tu codigo si se llama index.php?
Te falta ";" el punto coma, al final del array $ubicacion
Alguno puede darme una mano y ver porque no funciona?
tengo el mismo problema
Intenta colocando la indentación de los breaks al mismo nivel que los case en lugar de los echo, podría ser eso, coméntanos si lo es/era.