Foros del Web » Programación para mayores de 30 ;) » Programación General »

Comparar dos arrays

Estas en el tema de Comparar dos arrays en el foro de Programación General en Foros del Web. Buenas, ¿Cómo podría comprobar que dos arrays son iguales? He probado con lo siguiente, pero no funciona: Cita: my @array1 = ("1", "2"); my @array2 ...
  #1 (permalink)  
Antiguo 05/06/2005, 16:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 114
Antigüedad: 19 años, 1 mes
Puntos: 0
Comparar dos arrays

Buenas,

¿Cómo podría comprobar que dos arrays son iguales? He probado con lo siguiente, pero no funciona:

Cita:
my @array1 = ("1", "2");
my @array2 = ("2", "3");

if(@array1 eq @array2) {
print "Arrays iguales\n";
}

else {
print "Arrays distintos\n";
}
Podría ir comparando elemento a elemento, pero seguro que en Perl existe una forma mas facil

Por otra parte, puede que los elementos del array esten desornados, ¿Como podría ordenarlos? Alfabéticamente por ejemplo..

MUCHAS GRACIAS!!
  #2 (permalink)  
Antiguo 05/06/2005, 18:42
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Holoa, sipongamos que tenemos 2 arrays iguales pero desordenados, entonces el primer paso sería ordenarlos

@ordenado1 = sort @uno;
@ordenado2 = soft @dos;

Ahora hacemos un bucle que compare cada item de los arrays
Código:
$i = 0;
$elem = @ordenado1;
for ($i = 0; $i < $elem;$i++){
   if ($ordenado1[$i] == $ordenado2[$i]){
       print "El elemento $i son iguales en ambos arrays";
   } else {
       print "El elemento $i NO son iguales en ambos arrays";
   }
}
Se entiende ? con $elem = @ordenado1; tomamos la longitud del array para hacer una iteración y que valla complobando así todos los elelemntod de ambos arrays...Que ya están ordenados...

Espero que te sirva

Saludos
__________________
Esteban Quintana
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 04:21.