PHP - Mostrar al usuario todos los nombres que empiecen por la misma letra

 
Vista:
sin imagen de perfil
Val: 53
Ha disminuido su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar al usuario todos los nombres que empiecen por la misma letra

Publicado por raquel (27 intervenciones) el 24/04/2018 13:19:55
Hola gente, vengo con otra duda
Os comento lo que estoy haciendo. Tengo un formulario en el que el usuario introduce una letra y "se supone" que el programa ha de mostrarle los nombre que empiezan por esa letra. Para ello me he creado un array con varios nombres y con un foreach lo recorro, pero he aqui el problema, no estoy muy segura, si he de tratar esas cadenas con un sbstrig o si directamente la funcion array_search me soluciona el problemilla... yo tengo este codigo jmmm que como podeis apreciar no hace lo que se le pide...

<form action="#" method="POST">

Letra: <input type="text" name="letra">

<input type="submit">

</form>

<?php

$nombres =["Alberto", "Lydia", "Lucas", "Rosa", "Abel", "Víctor", "Kevin", "Minerva", "Michel", "Joel", "Marcos", "José"];


foreach ($nombres as $key => $value){
echo "$key vale $value <br>";

if ($letra == $nombre[array_search(0)]);
echo "Son iguales";

}



?>

Pero trato de encaminarlo, no seais muy malos que aun estoy un poco verde con php :) Millones de gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar al usuario todos los nombres que empiecen por la misma letra

Publicado por Simon (6 intervenciones) el 24/04/2018 17:57:39
Antes de mostrar el codigo corregido te dire los fallos que tienes en el tuyo, el if que tienes puesto no se ejecuta (no tiene codigo dentro de corchetes o una sentencia antes de un punto y coma), tambien llamas a la variable $letra pero no veo en ningun momento que le asignaras ningun valor o lo igualaras a lo que recibe del formulario con $_POST['letra'] o extract();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form method="post" action="">
 
	<input type="text" name="letra">
	<input type="submit" name="enviar">
 
</form>
 
<?php
 
 
$nombres =["Alberto", "Lydia", "Lucas", "Rosa", "Abel", "Víctor", "Kevin", "Minerva", "Michel", "Joel", "Marcos", "José"];
 
 
foreach ($nombres as $key => $value){
	echo "$key vale $value <br>";
 
	$str = strtoupper($_POST['letra']);
 
	if (substr($str,0,1) == substr($value, 0,1)) {
		echo "Son iguales<br>";
	}
 
}
 
?>

aqui comentare mi codigo y los cambios -> el strtoupper(): vale para poner en mayuscula el string que recibe en el formulario, para despues cuando se coja el primer caracter este en mayuscula y coincida con el del nombre del array, en el if se coge un substring del primer caracter y se comparan, si son iguales salta el son iguales.


Espero que te ayudase el codigo. (Seguramente habria mejores maneras de hacerlo que tampoco llevo mucho tiempo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 53
Ha disminuido su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar al usuario todos los nombres que empiecen por la misma letra

Publicado por raquel (27 intervenciones) el 24/04/2018 18:06:18
ya decia yo que me faltaba como pillar la "letra" introducida por formulario, y me estaba comiendo la cabeza, pero no sabia que existia esa funcion!! muchisimas gracias, voy a probar!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 53
Ha disminuido su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar al usuario todos los nombres que empiecen por la misma letra

Publicado por raquel (27 intervenciones) el 24/04/2018 20:23:49
Lo he probado y funciona perfectamente!! Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar