ďťż

[PHP]Złe sortowanie tabeli

       

Podstrony


telcocafe

Witam,
mam napisać prosty programik który pobierze dane z pliku txt i je potem posortuje (po drugiej kolumnie od największego)

Plik txt wyglada tak

IMIE ### WYNIK ### COSTAM ### COSTAM (gdzie ### to rozdzielnik_
oto kod php
<?php $plik = "db.txt"; $dane = file($plik); /* pobieram dane z pliku i zapisuje do tablicy (linia = rekord) */ for($i=0;$i<count($dane);$i++) { /* przeszukuję tablicę */ list($nick[$i], $punkty[$i], $bledy[$i], $opis[$i]) = explode(" ### ", $dane[$i]); /* dzielę linię na tablicę i zapisuje dane do odpowiednich zmienncyh które równiez są tablicami */ } rsort($punkty); /* sortownie (od najwyzszej do najnizszej) */ $i=0; echo "<center><table border=\"1\">"; echo"<td bgcolor=\"yellow\" align=\"center\">Nick<td><td bgcolor=\"yellow\" align=\"center\">Wynik<td><td bgcolor=\"yellow\" align=\"center\">Bledy<td><td bgcolor=\"yellow\">Komentarz<td>"; while($i < count($punkty)) { echo "<tr>"; echo "<td align=\"center\">".$nick[$i]."<td><td align=\"center\">".$punkty[$i]."<td><td align=\"center\">".$bledy[$i]."<td><td align=\"center\">".$opis[$i]."<td>"; $i++; echo "<tr>"; } echo "<table><center>" ?>

Noi jak mam np
Johnny86 ### 11
Test ### 22

to powinno wyglądać
Test 22
Johnny86 11

a mam
johnny86 22
test 11

czyli sortuje mi samą kolumnę drugą nie uwzględniając pierwszej.



Musisz skorzystać z funkcji array_multisort.
http://php.net/manua...y-multisort.php
<?php // Obtain a list of columns foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // Sort the data with volume descending, edition ascending // Add $data as the last parameter, to sort by the common key array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?>

Dane powinieneś trzymać w jednej tablicy asocjacyjnej wielowymiarowej, bo inaczej nic Ci to nie da skoro przesortujesz tylko tablicę z wynikami, a pozostałe nie...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.