Thread Größten Wert in mehrstufigem Hash finden (20 answers)
Opened by Stefan_S at 2018-03-15 09:46

rosti
 2018-03-15 17:57
#188163 #188163
User since
2011-03-19
3492 Artikel
BenutzerIn
[Homepage]
user image
Also im Prinzip so:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# zunächst erzeugen wir ein sortierbares Array 
# Achtung es werden Schlüssel hinzugefügt
# guck hier daß es keine Konflikte gibt!!!
my @slice = ();
foreach my $time(keys %$data){
    foreach my $anr( keys %{$data->{$time}} ){
        my $hunt = $data->{$time}{$anr};
        foreach my $cnr(keys %{$hunt}){
            my $charge = $data->{$time}{$anr}{$cnr};
            $charge->{TIME} = $time;
            $charge->{ANR} = $anr;
            $charge->{CNR} = $cnr;
            push @slice, $charge;
        }
    }
}

# und nun das Array sortieren
# nach den gewünschten Kriterien
@slice = 
    map{$_->[0]}
    sort{$a->[2] <=> $b->[2]} # nach Artikel aufsteigend
    sort{$a->[3] <=> $b->[3]} # nach Charge aufsteigend
    sort{$b->[4] <=> $a->[4]} # nach Bestand absteigend
    map{[$_, $_->{TIME}, $_->{ANR}, $_->{CNR}, $_->{bestand}]} @slice;
    #    0        1         2          3           4

print Dumper \@slice;


Alles klaro ;)

View full thread Größten Wert in mehrstufigem Hash finden