Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Pisteiden järjestys (PHP)

Kurki [06.07.2008 20:02:41]

#

Olen vähän harjoitellut tässä PHP:ta ja nyt en keksi miten toteuttaisin suunnitelmani. Ajatuksena olisi lukea tiedostosta nimi ja siihen kuuluva pistemäärä. Exploadilla olen jakanut tiedoston osiin. Tarkoituksena olisi järjestää pisteet/nimet pistejärjestykseen.

Tästä pätkästä ehkä näkyy mitä yritän saavuttaa.
Pitäisi korvata tuo FOR-looppi jollain toimivalla.

<?php
$pisteet = array(
for ($i = (count($pelaajadata)/2); $i = 0; $i--) { "$$pelaajadata[i*2-1]" => "$piste[i-1]"});
arsort($pisteet);
$rank = 0;
foreach ($pisteet as $nimi => $pt) {
$rank++;
if($pt>0){
echo "<tr><td class=\"td2\">".$rank."</td>
<td class=\"td1\">".$nimi."</td>
<td class=\"td2\">".number_format($pt)."</td></tr>";
}
}
?>

Mod. edit: Kooditagit.

Metabolix [06.07.2008 20:38:38]

#

<?php
$f = file("pisteet.txt");
/*
Matti
10
Pekka
15
*/
$taulu = array();
for ($i = 0; $i < count($f); $i += 2) {
  $taulu[] = array(
    "pelaaja" => $f[$i],
    "pisteet" => $f[$i + 1]
  );
}

# Vertailufunktio;
# Jos a < b,  vertailu < 0;
# Jos a > b,  vertailu > 0;
# Jos a == b, vertailu = 0;
function vertailu(&$a, &$b) {
  return $a['pisteet'] - $b['pisteet'];
}
usort($taulu, "vertailu");
?>

Kurki [06.07.2008 22:43:15]

#

Kiitos neuvosta, mutta en taida osata soveltaa tuota.
Edellinen toimiva, mutta turhan pitkä versio meni tällä tapaa:

<?php
$pisteet = array(
"nimi1" => "$piste[0]",
"nimi2" => "$piste[1]",
"nimi3" => "$piste[2]",
"nimi4" => "$piste[3]",
"nimi5" => "$piste[4]"
)?>

Voisiko tuollaisen loopin tehdä?

Lebe80 [06.07.2008 22:56:47]

#

Miksi $piste[...] on lainausmerkkien sisällä?

Kurki [07.07.2008 15:14:33]

#

No niinpä näkyy olevan. Ei kyllä pitäisi.
Jostain syystä se toimi noin silti.

Lebe80 [07.07.2008 15:55:13]

#

Kyllä se toimiikin, mutta aiheuttaa ylimääräistä merkkijonon parsimista palvelimelta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta