Schrift
[thread]8462[/thread]

Array sortieren (speziell)

Leser: 3


<< >> 6 Einträge, 1 Seite
wickedjack
 2006-11-01 20:36
#71297 #71297
User since
2006-02-03
6 Artikel
BenutzerIn
[default_avatar]
Hallo. Ich habe da noch einmal eine Frage.
Ich habe folgende Arten von Elementen in einem Array:1,1,3-11-11618000.7892 oder 4,12,23-99-2134500.835

die Elemente in diesem Array möchte ich nun nach der Zahl hinter dem zweiten "-" sortieren, also nach 11618000.7892 und 2134500.835. Ich weiß, dass es dafür die Schwarzsche Transformation gibt, ich glaube das ist die in dem untern code. Ich denke, die Lösung des Problems liegt in der Zeile
Code: (dl )
{ [ $_, uc( (/\d+\s*(\S+)/)[0]) ] } 
, nur weiß ich nicht wie diese entsprechend ändern muss, um so zu sortieren wie ich das möchte.

Code: (dl )
1
2
3
@sorted = map  { $_->[0] }
sort { $a->[1] cmp $b->[1] }
map { [ $_, uc( (/\d+\s*(\S+)/)[0]) ] } @data;


Also, wenn mir da jemand was erklären könnte, wäre das wirklich nett.
pq
 2006-11-01 21:14
#71298 #71298
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich wuerde split nehmen:
Code: (dl )
1
2
3
@sorted = map  { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, ( (split /-/)[2]) ] } @data;
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
wickedjack
 2006-11-01 21:41
#71299 #71299
User since
2006-02-03
6 Artikel
BenutzerIn
[default_avatar]
danke! ich glaube ich muss mir dieses map wohl noch genauer angucken.
Linuxer
 2006-11-02 01:30
#71300 #71300
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Das Stichwort zu pqs Lösung ist "Schwartzsche Transformation"...

http://faq.perl.org/perlfaq...._arr
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
esskar
 2006-11-02 07:28
#71301 #71301
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Linuxer,02.11.2006, 00:30]Das Stichwort zu pqs Lösung ist "Schwartzsche Transformation"...

http://faq.perl.org/perlfaq...._arr[/quote]
das wusste wickedjack auch schon! :)
Linuxer
 2006-11-02 11:24
#71302 #71302
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
[quote=esskar,02.11.2006, 06:28]das wusste wickedjack auch schon! :)[/quote]
*oops* damned ... das kommt davon, wenn man zu später Stunde die Beiträge nur noch überfliegt ...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< >> 6 Einträge, 1 Seite



View all threads created 2006-11-01 20:36.