[TXT][PHP] Statystyki użytkowników od największej do najmniejszej liczby punków.

0

Witam,

Mam plik stat.txt o zawartości (user:punkty):

UserA:60
UserB:40
UserC:80
UserD:50
UserE:70

I w pliku stat.php chcę za pomocą explode wczytać $stat[0] (user) i $stat[1] (punkty) i wyświetlić po kolei użytkowników od największej liczby punktów do najmniejszej.

Czyli.

  1. UserC - 80 pkt.
  2. UserE - 70 pkt.
  3. UserA - 60 pkt.
  4. UserD - 50 pkt.
  5. UserB - 40 pkt.

Czyli tak jakby statystyki.
I nie wiem właśnie jak to zrobić.
Mógłby mi ktoś pomóc?

Z góry dziękuję,
Z wyrazami szacunku.

2

Zakładając, że użytkownicy nie powtarzają się: wrzucić do tablicy $tab[$user]=intval($points); i posortować po wartości. Potem tylko odpowiednio wyświetlić tablicę.

0

Zrobiłem coś takiego, ale mi nie działa, nie wiem gdzie robię błąd, proszę o pomoc.

<?php

$fp = fopen("stat.txt", "r");

while($row = fgets($fp)) {
list( $user, $points ) = explode( ":", $row );

$tab[$user]=intval($points);

}

fclose($fp)

asort ($tab);
reset ($tab); // Funkcja ta powoduje powrót do pierwszego elementu tablicy
while (list ($klucz, $wartosc) = each ($tab)) {
    echo "$klucz = $wartosc";
}

?>

Plik stat.txt

userA:50
userB:70
userC:30
userD:40
1

A co konkretnie Ci nie działa? Bo na moje oko, to się nawet nie odpali ;)

0

No właśnie nic nie działa, wyświetla się cala biała strona bez niczego

0

Dobra nie było tematu. :). Byłem taki mądry że na linii 12 zapomniałem dać ; na koniec linii I po prostu kod się nie wykonywał. Dziękuję za pomoc wszystkim, a w szczególności Delor'owi. Za podanie sposobu i odnośnika. Bardzo mi pomogło

0

Funkcja each jest deprecated od wersji 7.2.

1 użytkowników online, w tym zalogowanych: 0, gości: 1