Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/09/2007, 22:39
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: comparar un valor entre varios arrays

Segun lo que tu describes, tu array, son array unidimensionales, es decir, vectores.

Bueno en los primeros cursillos de programacion, siempre te enseñan a encontrar el mayor, el clasico algoritmo de ir preguntando quien es mayor y guardar el mayor y la posicion.

Código PHP:
<?

// Funcion Maximo en Vectores by deerme.org
// http://deerme.org
$arr1 = array ( 0,14,25,31,54,1245,-147,10,547,478,12,45);
$arr2 = array ( 10,13,21,0,12,4125,3435,6263,3634,63463,12,-5245);
$arr3 = array ( 21,141,2512,315,-54,1121,523523,1212,2532,523523,1212,522);

// Arreglo con Valores Aleatorios
for ($i=0;$i<200;$i++)
{
    
$arr4[$i]=rand(-1000,1000000);
}

function 
maximo_array($arraybi)
{
    
// Se le deben entregar Array Unidimensionales ( Vectores )
    
    // Definimos Iniciales
    
$mayor = -999999999999;
    
$mayor_indice = -1;
    
$array_encontrado = -1;
    
    
    
$num_array=0;
    foreach ( 
$arraybi as $array  )
    {
        
        foreach ( 
$array as $indice=>$valor )
        {
            
            if ( 
$mayor <= $valor )
            {
                
// Actualizamos
                
$mayor $valor;
                
$mayor_indice $indice;
                
$array_encontrado $num_array;    
            }
            
            
        }
        
        
$num_array++;
        
        
    } 
    
    return ( array(
$array_encontrado,$mayor_indice,$mayor));
    
}


$caca maximo_array( array($arr1,$arr2,$arr3,$arr4) );


print_r($caca);


?>
entonces lo que devuelve la funcion es
- Primer Valor, el en que array se encuentra
- Posicion dentro del Array
- El Valor mas alto

ejecutado localmente
Código:
Array ( [0] => 3 [1] => 24 [2] => 999176 )
(es ovbio que el cuarto array pasado , tiene valores aleatorios)

Saludos

Última edición por DeeR; 09/09/2007 a las 22:40 Razón: xD