Thread Werte aus Array über zwei Array vergleichen und löschen
(17 answers)
Opened by namenlos at 2014-01-21 16:42
Hallo,
hier auch noch ein Vorschlag von mir, der mir einfacher zu sein scheint, als die schon vorgelegten: In der Regel ist das Mittel der Wahl ein Hash, wenn Dubletten entfernt werden sollen. In diesem Fall müssen Dubletten über zwei Dimensionen ermittelt werden, das würde ich mit einem verschachtelten Hash machen. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #!/usr/bin/perl use strict; use warnings; my @name = ("heinz", "karl", "Peter", "Anne", "heinz", "Anne"); my @geb = ("20101920", "23011929", "02121915", "06041966","20101920", "07071977"); my %all; # Verschachtelter Hash für den ganzen Datenbestand for my $i (0..$#name) { $all{$name[$i]}->{$geb[$i]} .= "Rechnung Nr. $i "; } for my $nam (sort keys %all) { for my $geb (sort keys %{$all{$nam}}) { print "$nam, $geb: $all{$nam}->{$geb}\n"; } } Code: (dl
)
1 Anne, 06041966: Rechnung Nr. 3 Anstelle von "Rechnung Nr. $i" müssen natürlich die richtigen Rechnungsdaten eingefügt werden. HTH Grüße payx Editiert von payx: Kleine Anpassung in Zeile 12: Wenn eine Dublette entfernt wurde, sieht man das jetzt daran, dass mehrere Rechungen kommen. Last edited: 2014-01-22 12:04:12 +0100 (CET) |