Foros del Web » Programando para Internet » PHP »

Saber que vaor está cerca

Estas en el tema de Saber que vaor está cerca en el foro de PHP en Foros del Web. Hola, tengo un array: $fondos=array('340x220', '1920x1200','1920x1080', '640x480', '800x600', '1024x768', '1280x1024'); Sabiendo que el ancho actual es de 1240 y el alto 900 como podria saber ...
  #1 (permalink)  
Antiguo 26/11/2010, 10:14
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Saber que vaor está cerca

Hola, tengo un array:
$fondos=array('340x220', '1920x1200','1920x1080', '640x480', '800x600', '1024x768', '1280x1024');

Sabiendo que el ancho actual es de 1240 y el alto 900 como podria saber a que valor de los del array es mas cercano o igual?

Habia pensado en hacer un explode por la "x" asi tengo el ancho y el alto de cada uno de los valores del array, y con un foreach ir comprobando con un if, pero puede que haya alguna forma mas simple, y el if puede ser algo rebuscado de hacer y largo.


Se os ocurre algo mejor?
  #2 (permalink)  
Antiguo 26/11/2010, 10:39
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Saber que vaor está cerca

puedes guardar los string sin la X y pegar en ancho y el alto a comparar y restarle a cada uno de los elementos del array , el que te de menor diferencia es el mas cercano.


saludos

PD: puede ser una solucion obvio deben existir otras.
  #3 (permalink)  
Antiguo 26/11/2010, 11:07
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Saber que vaor está cerca

mmmmm no caigo muy bien en lo que dices :S

te refieres a que si tengo por ejemplo 1080 de ancho, divida cada uno de los anchos del array entre 1080 y el que de el resto mas proximo a 0 será el mas cercano?



Un saludo!
  #4 (permalink)  
Antiguo 26/11/2010, 12:39
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Saber que vaor está cerca

No osea digamos tienes 1200X800 lo dejes asi 1200800. y en el array hagas lo mismo con todas , entonces restas 1200800 con todos los elementos del array y el que te de menor diferencia es el mas cercano.

1200800-1200600


saludos
  #5 (permalink)  
Antiguo 26/11/2010, 13:23
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Saber que vaor está cerca

La verdad es que podria funcionar, aunque si se tratase de una pantalla vertical pasaria a ser 8001200, y deberia coger el de 1200800, tal vez tenga que coger siempre el valor mas grande y ponerlo primero.

Probaré a ver.
Gracias.
  #6 (permalink)  
Antiguo 26/11/2010, 13:39
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Saber que vaor está cerca

Creo que me funciona bastante bien, aunque seguro no es la forma de hacerlo. He ordenado el array para que salga de el cuando lo encuentre.

Sabiendo el width y height de la pantalla actual:

Código PHP:
Ver original
  1. $fondos=array('340x220', '640x480', '800x600', '1024x768', '1280x1024', '1920x1080', '1920x1200');
  2.  
  3. $width=1000;
  4. $height=800;
  5.        
  6.                 // Compruebo que no sea mas grande el heigth que el width por si la pantalla es vertical, como un ipad, y pongo el valor grande delante.
  7.         if($width>$height){
  8.         $cadena=$width.$height;
  9.         }else{
  10.         $cadena=$height.$width;
  11.         }
  12.        
  13.         foreach($fondos as $i=>$tam){
  14.             $tam=explode('x', $tam);
  15.             $cadena2=$tam[0].$tam[1];
  16.            
  17.             if($cadena2>$cadena){
  18.             $indice=$i;
  19.             break; // Ya se cual es el fondo acorde que le tengo que cargar, ¿Para que cargar un fondo mayor :P?
  20.             }
  21.         }
  #7 (permalink)  
Antiguo 26/11/2010, 13:46
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 2 meses
Puntos: 15
Respuesta: Saber que vaor está cerca

si esa puede ser una solucion puede que alguien tenga otra.

saludos
  #8 (permalink)  
Antiguo 26/11/2010, 13:53
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Saber que vaor está cerca

seria mayor o igual mejor:
Código PHP:
Ver original
  1. #
  2. if($cadena2>=$cadena){
  3.  
  4.             $indice=$i;
  5.  
  6.             break; // Ya se cual es el fondo acorde que le tengo que cargar, ¿Para que cargar un fondo mayor :P?
  7.  
  8.             }

Etiquetas: Ninguno
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




La zona horaria es GMT -6. Ahora son las 11:20.