Thread 2 Arrays vergleichen (3 answers)
Opened by Gast at 2003-10-15 13:34

format_c
 2003-10-15 17:32
#63760 #63760
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das problem ist dass das Orginalarray ja viele Elemente haben kann und jedes Elemtn mehrmals in dem zu vergleichenden enthalten sein kann.
Ich mache es mit einem Zweidimensionalen Array:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use strict;
my @original = qw/1 3 2 4/;
my @kopie = qw/3 2 1 4 2 3 2 1 4/;

my @gemeinsam = vergleiche_array(\@original,\@kopie);
print "Element $_ ($original[$_]) in original am pos " . join(" & ",@{$gemeinsam[$_]}) . " gefunden\n" for 0..$#gemeinsam;


sub vergleiche_array ($$) {
my $original = shift;
my $kopie = shift;
my @auswertung;
for my $v (0..$#$original) {
push @auswertung,[grep($$original[$v]==$$kopie[$_],(0..$#$kopie))];
}
return @auswertung;
}
_ _ END _ _
Element 0 (1) in original am pos 2 & 7 gefunden
Element 1 (3) in original am pos 0 & 5 gefunden
Element 2 (2) in original am pos 1 & 4 & 6 gefunden
Element 3 (4) in original am pos 3 & 8 gefunden


Verstehst du wie es aufgebaut ist.
In Element 0 ist ein anon. Array enthalten, dass die Vorkommnisse von Element 0 vom Original in der Kopie wiedergeben.

Gruß ALex

View full thread 2 Arrays vergleichen