Foros del Web » Programando para Internet » PHP »

Imprimir la variable del array más grande

Estas en el tema de Imprimir la variable del array más grande en el foro de PHP en Foros del Web. Saludos, he hecho un test en el que segun tu respuesta se le añade +1 a una variable de forma que cuando se acaba el ...
  #1 (permalink)  
Antiguo 26/12/2011, 16:14
 
Fecha de Ingreso: octubre-2011
Mensajes: 230
Antigüedad: 12 años, 5 meses
Puntos: 75
Imprimir la variable del array más grande

Saludos, he hecho un test en el que segun tu respuesta se le añade +1 a una variable de forma que cuando se acaba el test, de las variables que hay segun la que haya conseguido sumar más puntos se imprimira una cosa en pantalla, por ejemplo:
Tenemos 3 variables (Hechas con arrays) si respondes a) se le añade +1 a la 1º variable del array, si respondes b) le añades +1 a la 3º...
Al final si la variable que más puntos a acumulado ha sido una, se imprime un texto y si no otro, ej de código:

Código:
<?php
$arreglo = array( "t" => 0, "y" =>0, "f" => 0);
switch($_POST["platanos"])
{

	case "broma":
	$arreglo["t"]++;
	break;
	
	case "flipar":
	$arreglo["f"]++;
	break;
	
	case "reir":
	$arreglo["y"]++;
	break;
}

switch($_POST["reir"])
{

	case "broma":
	$arreglo["t"]++;
	break;
	
	case "flipar":
	$arreglo["f"]++;
	break;
	
	case "reir":
	$arreglo["y"]++;
	break;
}

switch($_POST["clase"])
{

	case "broma":
	$arreglo["t"]++;
	break;
	
	case "flipar":
	$arreglo["f"]++;
	break;
	
	case "reir":
	$arreglo["y"]++;
	break;
}


if($arreglo["t"] > $arreglo["y"] and $arreglo["t"] > $arreglo["f"])
{
	echo "Pulsa para ver que eres<br>";?> <img onclick="this.src='ima/images.jpg'" src="ima/eres.gif" style="width:250px; height:200px;" /><?php
}
if($arreglo["y"] > $arreglo["t"] and $arreglo["y"] > $arreglo["f"])
{
		echo "Pulsa para ver que eres<br>";?> <img onclick="this.src='ima/eeee.jpg'" src="ima/eres.gif" style="width:250px; height:200px;" /><?php
}
if($arreglo["f"] > $arreglo["y"] and $arreglo["f"] > $arreglo["t"])
{
	echo "Pulsa para ver que eres<br>";?> <img onclick="this.src='ima/fah.jpg'" src="ima/eres.gif" style="width:250px; height:200px;" /><?php
	
}
Quisiera hacerles 2 preguntas sobre este código:
Tengo los condicionales con 3 if, pero luego seguramente ponga muchas variables y eso requerirá un montón de if
¿Como hago que me imprima la variable con mayor puntuación a la que le asignaré un texto?
Igual que al hacer click en la imagen se cambia quisiera que tambien se cambiará el Pulsa para que ver que eres, por un texto que sería lo que eres.
¿Cómo hago que desaparezca este texto y aparezca otro?

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 27/12/2011, 02:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 230
Antigüedad: 12 años, 5 meses
Puntos: 75
Respuesta: Imprimir la variable del array más grande

¿Puede responderme alguien, es urgente?
  #3 (permalink)  
Antiguo 27/12/2011, 03:13
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 12 años, 11 meses
Puntos: 95
Respuesta: Imprimir la variable del array más grande

El problema de todos tus condicionales es que no estás programando con una buena estructura/arquitectura. Cómo solucionar esto? aprendiendo a programar xD

Para ordenar los arrays puedes usar arsort()
http://www.php.net/manual/es/function.arsort.php
__________________
Web Designer.
Themes-Up!, próximamente
  #4 (permalink)  
Antiguo 27/12/2011, 04:01
 
Fecha de Ingreso: octubre-2011
Mensajes: 230
Antigüedad: 12 años, 5 meses
Puntos: 75
Respuesta: Imprimir la variable del array más grande

Yo no los quiero ordenar, sino que segun cual sea el más grande me imprima una cosa u otra. Arsort simplemente me imprime el valor de las variables cosa que no quiero, el valor de las variables solo lo uso para el condicional.

¿Cómo hago que segun cual sea el más grande me imprima una cosa u otra?
  #5 (permalink)  
Antiguo 27/12/2011, 04:08
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 12 años, 11 meses
Puntos: 95
Respuesta: Imprimir la variable del array más grande

arsort() no imprime nada a no ser que tu así lo indiques.
Con esta función puedes sacar el más grande entre los de en un array. La forma en que luego tu los trates es otra cosa. El valor del dato más alto lo tendrás en $array[0], luego $array[1] y sucesivos

También puedes echarle un vistazo a max(), aunque no sé si es lo que quieres:
http://php.net/manual/es/function.max.php
__________________
Web Designer.
Themes-Up!, próximamente

Última edición por fishdesign; 27/12/2011 a las 04:23
  #6 (permalink)  
Antiguo 27/12/2011, 04:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 230
Antigüedad: 12 años, 5 meses
Puntos: 75
Respuesta: Imprimir la variable del array más grande

Cita:
Iniciado por fishdesign Ver Mensaje
arsort() no imprime nada a no ser que tu así lo indiques.
Con esta función puedes sacar el más grande entre los de en un array. La forma en que luego tu los trates es otra cosa. El valor del dato más alto lo tendrás en $array[0], luego $array[1] y sucesivos

También puedes echarle un vistazo a max(), aunque no sé si es lo que quieres:
http://php.net/manual/es/function.max.php
Entonces como haría con esto que si la más grande es "t" me diga aaaaa, si la más grande es "y" diga eee y si es "f" diga iiiiii
¿sería así?:

Código:
arsort($arreglo);
foreach($arreglo as $m => $val)
{


if($m[0]==$m["t"])
{
echo "a";	
}

if($m[0]==$m["y"])
{
echo "e";	
}

if($m[0]==$m["f"])
{
echo "i";	
}

}
  #7 (permalink)  
Antiguo 27/12/2011, 06:02
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 12 años, 11 meses
Puntos: 95
Respuesta: Imprimir la variable del array más grande

Lo que tienes que hacer es comprobar si coinciden posiciones.
Por cierto, se me pasó decirte que para obtener el valor en $array[0] deberás de volver a reindexar el array con array_values(), sino cogerá como índice el valor anterior aunque el foreach te lo ordene.


Un saludo

Edit: Cómo veo que andas un poco perdido te pondré el code directamente, a lo mejor se me escapa algo, pues no lo he probado

Código PHP:
Ver original
  1. <?php
  2. $data = array("2", "9", "7", "1", "5"); // el array donde tenemos los valores a tratar
  3. $pos = $data; //Duplicamos variable para trabajar con ella
  4.  
  5. arsort($pos); // Ordenamos de mayor a menor
  6.  
  7. $pos = array_values($pos); //Reindexamos el array
  8.  
  9. if($pos[0]==$data[0]){
  10. echo "cero"; //si el valor más alto está en la primera posición
  11.    
  12. }
  13.  
  14. if($pos[0]==$data[1]){
  15. echo "uno"; //si el valor más alto está en la segunda posición
  16. }
  17.  
  18.  
  19.  
  20. ?>
__________________
Web Designer.
Themes-Up!, próximamente

Última edición por fishdesign; 27/12/2011 a las 06:17
  #8 (permalink)  
Antiguo 27/12/2011, 06:33
 
Fecha de Ingreso: octubre-2011
Mensajes: 230
Antigüedad: 12 años, 5 meses
Puntos: 75
Respuesta: Imprimir la variable del array más grande

Porfin lo conseguí, muchas gracias por prestarme de tu tiempo y he conseguido un código que me funcione, muchas gracias.

Saludos y felices fiestas.

Etiquetas: grande, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:43.