Foros del Web » Programando para Internet » PHP »

Fallo en el una funcion de calcular max y min

Estas en el tema de Fallo en el una funcion de calcular max y min en el foro de PHP en Foros del Web. Código PHP: function  maxmin  ( $x ) {      $min  =  $x [ 0 ];      $max  =  $x [ 0 ];          for ( $i ...
  #1 (permalink)  
Antiguo 24/02/2005, 12:25
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 12 años, 10 meses
Puntos: 1
Fallo en el una funcion de calcular max y min

Código PHP:
function maxmin ($x)
{

    
$min $x[0];
    
$max $x[0];
    

    for (
$i=0;$i<4;$i++)
    {

            if (
$x[$i] < $min)
                
$min $x[$i];
    }


    
$max $x[0];
    for (
$i=0;$i<4;$i++)
    {
        
            if (
$x[$i] > $max)
            
                
$max $x[$i];

                
    }

echo 
"max",$max;
echo 
"min",$min;


Pues el mínimo me lo calcula, pero el máximo no :\ No me da error, solamente que me calcula como el máximo el primer valor del array.

Gracias
  #2 (permalink)  
Antiguo 24/02/2005, 13:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
PHP ya tiene implementadas dichas funciones ...

max() y min() para un array dado .. o lista de valores (separados por comas)

Un saludo,
  #3 (permalink)  
Antiguo 24/02/2005, 14:07
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 12 años, 10 meses
Puntos: 1
de todas formas, creo que el problema está, en que cojo de un fichero "datos.txt" unos valores para el array, y entre ellos hay valores como el "25" que parece ser que al comparar, lo compara , primero el 2, luego el 5... , entiendes lo que te quiero decir?
  #4 (permalink)  
Antiguo 24/02/2005, 14:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. eso es por qué lo está tomando como un "string" .. debes pasarlo a un tipo numérico para así poder aplicar max() o min() y que funcionen correctamente.

No sé si habrá alguna forma más optima .. pero podría ser:

Código PHP:
$nuevo_array=array();
foreach (
$tu_array as $valor){
$nuevo_array[]=(int)$valor;
}

echo 
"valor maximo: ".max($nuevo_array);
echo 
"valor minimo: ".min($nuevo_array); 
Un saludo,
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 18:42.