Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/08/2012, 22:49
Avatar de heyimedd
heyimedd
 
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como evaluar varios IF (mas d 20) de manera mas corta, alguna alternativa?

Cita:
Iniciado por Triby Ver Mensaje
Si entendí correctamente, tienes algo como:

rango - inferior - superior
-------------------------------
1 - 0 - 5
2 - 6 -10
3 - 11 - 15
4 - 16 - 20
5 - 21 - 25
etc...
20 - 90 - 1000

Y necesitas saber en qué rango está el resultado obtenido?

De ser así, yo lo que haría sería crear un arreglo sólo con los limites superiores y recorrerlo para ver donde corresponde:

Código PHP:
Ver original
  1. // Inicializas con los valores que necesites
  2. $rangos = array(5, 10, 15, 20, 25, '/* ********* */ 1000);
  3.  
  4. // Por si no encontramos alguna coincidencia, por default asignamos el rango mayor
  5. $rango = 20;
  6.  
  7. // Recorres los rangos
  8. for($i = 0; $i < count($rangos); $i++) {
  9.    if($resultado < $rangos[$i]) {
  10.         // Lo encontramos, de aquí es!
  11.         $rango = $i;
  12.         // Cancelas el for
  13.         break;
  14.    }
  15. }
  16.  
  17. echo "$resultado pertenece al rango $i";

Hola, muchisimas gracias por tu explicación, el tema es que, el if no es solo para saber donde está el valor, si no para hacer un calculo dependiendo de su posición y a la vez, asignarlo a otro array para luego calcular el total.


por ejemplo:

Código PHP:
  <span class="Items">
<?



$cantidad 
count ($piezas);
//Sacamos los precios totales de cada producto
for ($i=1$i<=$cantidad$i++)
{
echo 
"<tr>"    ;
echo 
"<td><span class='Items'>".$piezas[$i]."</td></span>";
echo 
"<td><span class='Items'>".$articulos[$i]."</td></span>";
echo 
"<td><span class='Items'>".

$subtotalpieza[]=$piezas[$i]*$precio[$i]


.
"</td></span></tr>";
}
</
span>


//YA LUEGO PARA SACAR MI TOTAL HAGO

//Calculamos el total de la cotización
$total=0;
foreach (
$subtotalpieza as $subtotales)
{
$total=$total+$subtotales;
}
echo 
"<br><br>";
echo 
$total;
?>
el caso es que cuando hago:

Código PHP:
$piezas[$i]*$precio[$i
Piezas estaría multiplicandose por el valor que recoge desde mi formulario y quisiera que no fuera así, sino que del valor que recoge desde mi formulario que en todo caso sería el precio de compra le calculara la utilidad aproximada basandome en unos rangos por ejemplo,

calculara si es menor a 10 pesos por 2
si es menor de 20 por 1.8
si es menor de 50 por 1.5
si es menor de 100 por 1.4
si es menor de 200 por 1.3

y que cada valor lo agregara a

$subtotalpieza[] para que luego pueda hacer mi suma del total.


Ojalá me puedas echar un cable con eso, te lo agradecería muchisimo!

saludos y buenas noches.