Schrift
[thread]6182[/thread]

List of lists nach einer Spalte sortieren: aber verkehrtherum... o.O



<< >> 3 Einträge, 1 Seite
DemoFreak
 2004-04-06 00:59
#81450 #81450
User since
2003-09-06
54 Artikel
BenutzerIn
[default_avatar]
Aaaalso:
Code: (dl )
1
2
3
4
5
6
for (@bigarray) {
   for (@$_) {
       print "$_;"
   }
   print "\n";
}

Ich habe eine dickes Array, welches Referenzen auf kleine Listen enthält, welche wiederum die Spaltenwerte der Tabellenzeilen darstellen. Sprich: die kleinen Listen sind die Zeilen, und das grosse Array ist die gesamte Tabelle. Soweit klar? ;)
Nun möchte ich gern das gesamte Konstrukt spaltenweise sortieren, und zwar nach dem Spaltenwert in der 4. Zeile, also nach $bigarray[3]. Die Spalte, welche in dieser Zeile den grössten Wert hat, soll an die erste Stelle rücken, und so weiter.
Irgendwie hab ich da jetzt nen Hänger...
Gruss, Hannes
esskar
 2004-04-06 01:15
#81451 #81451
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
foreach my $ref (sort { $b->[3] <=> $a->[3] } @bigarray)
{
foreach my $cell (@{$ref})
{
print "$cell;"
}
print "\n";
}
DemoFreak
 2004-04-06 15:07
#81452 #81452
User since
2003-09-06
54 Artikel
BenutzerIn
[default_avatar]
Nö. Das sortiert die Zeilen anhand des Kriteriums "4.Spalte", soweit war ich gestern auch schon. :)
Aber ich hab es jetzt gelöst, indem ich genau das getan habe, was wahrscheinlich das sinnvollste ist, nämlich Zeilen und Spalten der Tabelle vertauscht, und damit geht das jetzt auch so, wie Du das vorschlägst.
Gruss, Hannes
<< >> 3 Einträge, 1 Seite



View all threads created 2004-04-06 00:59.