Perl - Comparar arrays

 
Vista:

Comparar arrays

Publicado por laura (3 intervenciones) el 05/04/2002 17:47:23
Quisiera comparar dos arreglos por ej:
@arreglo1=(1,2,4,5);
@arreglo2=(a,2,q,5);

y que compare el 1 con a, el 2 con el 2, el 4 con q y el 5 con el 5

he probado con foreach pero no compara bien, compara cada valor del primer array
con todos los demas, si alguien me puede poner algun ejemplo se lo agradeceria mucho, un saludo

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparar arrays

Publicado por Pato (20 intervenciones) el 02/05/2002 23:16:57
puedes hacerlo con un ciclo for, es decir incrementando el indice en cada arreglo...ademas cuando compares hazlo con los mismo tipo de datos, es decir compara numeros con numeros y string con string, no numeros con string..
algo asi:

@arreglo1=(1,2,4,5);
@arreglo2=(a,2,q,5);

for ($i = 0 ; $i < 4 ; $i++)
{
$arreglo1[i] == $arreglo2[i]; #para numeros
$arreglo1[i] eq $arreglo2[i]; #para string
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comparar arrays

Publicado por osi (44 intervenciones) el 14/05/2002 10:32:15
my @arreglo1=(1,2,4,5);

my @arreglo2=('a',2,'q',5); #mantengo el tipo de dato podes pasar todo a string también, encerrando todo entre comillas
my $uno = @arreglo1; # no se porque no anda $@arreglo1, si te anda usa esto, te evitas crear estas variables
my $dos = @arreglo2;
my @igual;

for (my $i = 0 ; $i < $uno ; $i++) {
@igual = undef;
for (my $c = 0 ; $c < $dos ; $c++) {
if($arreglo1[$i] eq $arreglo2[$c]){
push @igual, $c;
}
}
my $tres = @igual;
if($tres > 1){
print "El indice $i del arreglo1 es = ";
foreach $coincidencias (@igual){
print "$coincidencias, " if $coincidencias ne '';
}
print "del arreglo2.\n";
} else {
print "El indice $i no es igual a ningún elemento del arreglo2. \n";
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar