Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie
Gibcio3
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.07.2007

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
php programmer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował php programmer 11.07.2007, 08:18:12
Go to the top of the page
+Quote Post
Gibcio3
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.07.2007

Ostrzeżenie: (0%)
-----


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ć ?

Ten post edytował Gibcio3 11.07.2007, 10:25:47
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:09