Schrift
[thread]5874[/thread]

Sortieren: nach einem Array von einem Array



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Gast Gast
 2003-11-03 13:05
#68965 #68965
Wie kann ich das am besten anstellen? Hier mal ein Beispiel:
Ich lese eine Datei aus:
Code: (dl )
1
2
3
4
name||email||Geschlecht||Geburtstag
name||email||Geschlecht||Geburtstag
name||email||Geschlecht||Geburtstag
name||email||Geschlecht||Geburtstag

Nun splite ich in einer forech Schleife jede einzelne zeile mit ||
Wie kann ich es nun am besten hinbekommen, die Einträge nach Spalten zu sortieren? Z.B.:
ich will die Einträge nach Geburtstag sortieren. Das sortieren der Geburtstage selber ist ja kein Problem. Ich will aber, das zudem noch der richtige Name, Email und Geschlecht zum richtigen Geburtstag verknüpft sind. Damit ich quasi eine Tabelle erstellen kann.
Oder besser: Sowas wie im Windows Explorer! Dort kann man ja nach Datum etc sortieren lassen und die Dateinamen und Grössen passen immernoch zum Datum. Hoffe ihr wisst, was ich meine.
jan
 2003-11-03 13:26
#68966 #68966
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
sort ermöglicht dir ja, eine eigene routine zum entscheiden der sortierung zu übergeben.
du könntest nun einfach sowas wie
my @nach_geb = sort {
# hier dein split und anschließender vergleich
} @alle_daten;

benutzen. die beiden einträge, die verglichen werden sollen, werden in die spezialvariablen $a und $b gestopft - in deinem fall dann die ganze zeile jeweils. du splittest sie dann und schickst entsprechend 1 oder -1 zurück, je, nachdem, ob $a vor $b stehen soll oder nicht. dummerweise habe ich vergessen, ob 1 nun für $a sprach oder für $b. naja, wirst du sicher herausfinden ;)
Crian
 2003-11-03 13:42
#68967 #68967
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Schau Dir mal die Sortierungsbeispiele auf meiner Perlseite an: http://www.duehl.de/christian/perl.html

(insb. http://www.duehl.de/christian/perl.html#snipsort4d )\n\n

<!--EDIT|Crian|1067859792-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
renee
 2003-11-03 13:42
#68968 #68968
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
z.B.:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#! /usr/bin/perl -w

use strict;
use diagnostics;
use warnings;
use Data::Dumper;

my @array = (['test','renee',1],['dies ist','jan',3],['ein','n00b',2]);
my @array2 = sort({$$a[2] <=> $$b[2]} @array);

print Dumper(\@array);
print Dumper(\@array2);

Ausgabe:$VAR1 = [
[
'test',
'renee',
1
],
[
'Dies ist',
'jan',
3
],
[
'ein',
'n00b',
2
]
];
$VAR1 = [
[
'test',
'renee',
1
],
[
'ein',
'n00b',
2
],
[
'Dies ist',
'jan',
3
]
];
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2003-11-03 17:34
#68969 #68969
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
my $sortierSpalte = 3;
my @sortedList =
map { $_->[1] }
sort { $a->[0] cmp $b->[0] }
map { (split(/\|\|/, $_))[$sortierSpalte], $_ }
@unsortedList;

der sortieralgorithmus ist die Schwartzian Transform; fuer mehr Infos siehe meine HP -> Tips&Tricks -> Sortierungen

[/code]
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Free Faq
 2003-11-03 21:13
#68970 #68970
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
ist es eigentlich einfach, mit einem Script Perl zum abstürzen zu bringen? Oder hab ich jetzt das "Glück" etwas gefunden zu haben?
Haut mich nicht, ich bin ein Noob!
Dubu
 2003-11-04 09:18
#68971 #68971
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
@Free Faq: Bezug zum Thema?
Was heisst "Perl zum abstuerzen zu bringen"? Was hast du gemacht? Was ist passiert?
Strat
 2003-11-04 11:22
#68972 #68972
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@E|B: meine wahrsagerkugel ist heute leider ziemlich beschlagen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
jan
 2003-11-04 11:47
#68973 #68973
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
gib's zu, strat, du hast dich auch, wie ich, von dem userbild täuschen lassen ;)
esskar
 2003-11-04 11:57
#68974 #68974
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Strat,04.11.2003, 10:22]@E|B: meine wahrsagerkugel ist heute leider ziemlich beschlagen...[/quote]
wahrscheinlich...
me too...
diese avatars binde ich direkt an einen namen....
den namen lese ich meistens nicht...
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2003-11-03 13:05.