Niin teen sellasta ristikkoo ja siihen on tarkotus tehä semmonen top lista, josta näkee parhaat tulokset. No tietysti ois kiva, jos paras tulos ois ylimpänä. Löysin php netistä tämmösen jutun:
<?php function cmp($a, $b) { if ($a == $b) { return 0; } return ($a > $b) ? -1 : 1; } $a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten"); uksort($a, "cmp"); while (list($key, $value) = each($a)) { echo "$key: $value\n"; } ?>
mutta en osaa soveltaa tota omaan koodiini eli tähän
<?php $filu = file("top.txt"); $vm = count($filu); for ($i = 0; $i < $vm; $i ++) { $tiedot = explode("|", $filu[$i], 2); $nimi = $tiedot[0]; $jtulos = $tiedot[1]; echo "<b>$nimi<br>$jtulos<p>"; } ?>
tuossa toi $jtulos on luku eli se minkä kyttäjä on saaut tuloksekseen ristikkoa tehdessään ja toi $nimi on ylläri ylläri käyttähän nimi. Niin että saiskos apuja :)
edit:
laitanpa tähän vielä sen mitä yritin
<?php function cmp($a, $b) { if ($a == $b) { return 0; } return ($a > $b) ? -1 : 1; } $filu = file("top.txt"); $vm = count($filu); for ($i = 0; $i < $vm; $i ++) { $tiedot = explode("|", $filu[$i], 2); $nimi = $tiedot[0]; $jtulos = $tiedot[1]; $a = array($jtulos => "$nimi"); } uksort($a, "cmp"); while (list($key, $value) = each($a)) { echo "$key: $value\n"; } ?>
tiedän että ongelmana on se että silmukka luo kokoajan koko taulukon uudestaan, mutta en tiedä miten sen saisi estettyä.
PHP:hän osaa järjestää taulukon ihan itse:
https://www.php.net/manual/en/function.sort.php
Auttaako?
joo... mut ongelmahan on että miten saan luettua tuohon $a = array(); kohtaan kaikki tuolta txt filusta tulevat arvot, siis onhan ihan helppo juttu tehdä toi valmiiks annetuilla arvoilla, mutta jos arvot luetaan muualta, niin mitenkä sitten onnistuu?
Aihe on jo aika vanha, joten et voi enää vastata siihen.