Array nach 2.tem Feld sortieren lassen
Marcus Vieß
- perl
0 horst
Meine txt datei ist so aufgebaut :
16|Nachtschatten|N|http:balbla
15|Vampyres|V|http:niknak
14|Vampire|V|http:zappzerapp
so sieht das script aus :
open(CAT,"linksdata.txt");
@kat = <CAT>;
close(CAT);
@kat = sort @kat;
foreach $kateg (@kat) {
chomp(@kat);
($katnr,$kattitel,$katbuchstabe,$katlink) = split(/|/, $kateg);
}
if ($zahl == 1) {
print "<tr>\n<td width="50%">";
ukat();
print "</td>\n";
}
if ($zahl == 2) {
print "<td width="50%">";
ukat();
print "</td></tr>\n";
$zahl = 0;
}
}
if ($zahl == 1) {
print"<td width="50%"> </td>\n</tr>\n";
print "</table><br>\n";
}
if ($zahl == 0) {
print "</table><br>\n";
}
sub ukat {
@katdesc = $katdesc;
@katdesc = split('---', $katdesc);
@katdesc = sort @katdesc;
$anzahl = @katdesc;
for ( $i = 0; $i+1 <= $anzahl; $i++ ) {
print " $zvu <a href="$katlink">$katdesc[$i]</a> ";
}
}
so, beim Sortieren sortiert mir das Teil aber nach der Nummer und nicht nach dem Titel (feld2) wie bekomme ich das hin ?
Meine txt datei ist so aufgebaut :
16|Nachtschatten|N|http:balbla
15|Vampyres|V|http:niknak
14|Vampire|V|http:zappzerapp
so sieht das script aus :
open(CAT,"linksdata.txt");
@kat = <CAT>;
close(CAT);
@kat = sort @kat;
foreach $kateg (@kat) {
chomp(@kat);
($katnr,$kattitel,$katbuchstabe,$katlink) = split(/|/, $kateg);
}
if ($zahl == 1) {
print "<tr>\n<td width="50%">";
ukat();
print "</td>\n";
}
if ($zahl == 2) {
print "<td width="50%">";
ukat();
print "</td></tr>\n";
$zahl = 0;
}
}
if ($zahl == 1) {
print"<td width="50%"> </td>\n</tr>\n";
print "</table><br>\n";
}
if ($zahl == 0) {
print "</table><br>\n";
}
sub ukat {
@katdesc = $katdesc;
@katdesc = split('---', $katdesc);
@katdesc = sort @katdesc;
$anzahl = @katdesc;
for ( $i = 0; $i+1 <= $anzahl; $i++ ) {
print " $zvu <a href="$katlink">$katdesc[$i]</a> ";
}
}
so, beim Sortieren sortiert mir das Teil aber nach der Nummer und nicht nach dem Titel (feld2) wie bekomme ich das hin ?
hmmm mir fällt nur folgendes ein:
spliten und arrayteile neu zusammen setzen, dann sortieren...
wieder spliten normal weiter arbeiten....
viele grüße
horst