Thread Größten Wert in mehrstufigem Hash finden
(20 answers)
Opened by Stefan_S at 2018-03-15 09:46
Ke Problem kömma alles machen ;)
Also wenn Du nur nach Bestand sortieren tätest Code (perl): (dl
)
1 2 3 4 5 6 7 8 # und nun das Array sortieren @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 Sieht die Ausgabe so aus: 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 $VAR1 = [ { 'ANR' => '2111', 'CNR' => '10', 'TIME' => '1521033526', 'artikel_nr' => 'AGI15030', 'bestand' => '3150.00', 'charge' => 'RSG' }, { 'ANR' => '2111', 'CNR' => '10', 'TIME' => '1521033260', 'artikel_nr' => 'AGI15030', 'bestand' => '3120.00', 'charge' => 'RSG' }, { 'ANR' => '2111', 'CNR' => '10', 'TIME' => '1521033630', 'artikel_nr' => 'AGI15030', 'bestand' => '3110.00', 'charge' => 'RSG' }, { 'ANR' => '2111', 'CNR' => '3', 'TIME' => '1521033260', 'artikel_nr' => 'AGI15030', 'bestand' => '1450.00', 'charge' => 'Event Management' }, { 'ANR' => '2111', 'CNR' => '3', 'TIME' => '1521033630', 'artikel_nr' => 'AGI15030', 'bestand' => '1100.00', 'charge' => 'Event Management' } ]; Prozess erfolgreich beendet. Es muss ein Array sein, weil Hashes immer unsortiert sind. Mein Code erstellt ein solches Array, was Du natürlich auch so aus der Datenbank holen kannst. In Fakt erzeugt mein Code für jeden Artikel quasi ein Objekt und das Array ist ein Array mit diesem Objekten. Sortiert wird übrigens hier mittels der Schwartzschen Transformation. Wichtig ist, daß Du das Prinzip verstehst. Was mein Code macht, heißt im Fachjargon Linearisierung (aus dem Hash ein Array erstellen). ;) Last edited: 2018-03-15 19:34:27 +0100 (CET) |