Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie
Forum PHP.pl > Forum > PHP
Gibcio3
Witam,

Dopiero uczę się programować w php i chciałem zrobić prostą top listę lecz nie wiem dokładnie jak zastosować funkcję rsort.

  1. <?php
  2. $plik = "include/dane/wpis.txt";
  3. $file = file($plik);
  4. $ile = count($file);
  5.  
  6. }
  7.  
  8. for($i = 0; $i < $ile; $i++)
  9. {
  10. $dane = explode('||', $file[$i]); 
  11.  
  12. rsort($dane);
  13. foreach ($dane as $key => $val) {
  14.  
  15. echo "$val,";
  16.  
  17. }
  18.  
  19. echo "$dane[0], $dane[1], $dane[2], $dane[3], $dane[4], $dane[7], $dane[8]";
  20. }
  21. ?>


Chodzi mi oto że jeśli w pliku jest

1||nazwa||55
2||nazwa2||5
3||nazwa3||99

i ma mi pokazać wpisy według liczb

3||nazwa3||99
1||nazwa||55
2||nazwa2||5

Od największej do najmniejszej
Z góry dziękuje za pomoc...
php programmer
W twoim przypadku wystarczy że zrobisz rsort dla zmiennej $file

  1. <?php
  2. $plik = "include/dane/wpis.txt";
  3. $file = file($plik);
  4. $ile = count($file);
  5. rsort($file);
  6.  
  7. }
  8.  
  9. for($i = 0; $i < $ile; $i++)
  10. {
  11. $dane = explode('||', $file[$i]); 
  12.  
  13.  
  14. foreach ($dane as $key => $val) {
  15.  
  16. echo "$val,";
  17.  
  18. }
  19.  
  20. echo "$dane[0], $dane[1], $dane[2], $dane[3], $dane[4], $dane[7], $dane[8]";
  21. }
  22. ?>
Gibcio3
ok zmieniłem kolejność danych najpierw ilość kliknięć czyli

55||nazwa||2
99||nazwa||1
5||nazwa||3

lecz teraz pokazuje mi jakoś dziwnie jeśli mam liczby w pliku

5||nazwa||1
58||nazwa||2
4||nazwa||3

to pokazuje 5, 58, 4 tak jak by sprawdzał tylko 1 liczbę z ciągu a nie do || jak to zrobić ?
Kicok
Dane wyciągnięte z pliku to tekst a nie liczba, dlatego sortowane są alfabetycznie.

Użyj funkcji natsort" title="Zobacz w manualu PHP" target="_manual i array_reverse" title="Zobacz w manualu PHP" target="_manual
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.