Gå til innhold

Trenger hjelp til rsort()


Anbefalte innlegg

Skrevet

Hi alle dere dere fantastiske mennesker

 

Jeg holder på å lage et flash spill med php "highscore".

I flash spillet har jeg en "timer" som tar tiden på hvor lang tid spilleren bruker på å fullføre spillet. Denne tiden vil jeg har inne i en "highscore".

 

Problemet er at den php koden jeg har er lagd for å sette opp en "highscore" med høyeste poeng sum øverst. Jeg må gjøre om koden til å vise den laveste tiden øverst.

 

Jeg tror det har noe med rsort() eller noe sånt.

 

Kan noen hjelpe meg med det?

 

Dem som hjelper meg får navnet på "credit"en.

 

http://www.mofle.net/moflegame2/

 

Start spillet og trykk på Highscore knappen for å komme direkte til highscore.

 

 

<?php

$winscore = (int)$winscore;

// Create a Blank File if it doesn't already exist
if (!file_exists($filename))
{
 $file=fopen($filename, "w");
 fclose ($file);
}

// Read the file in
$oscores = file ($filename);
$numreadin = count($oscores);

// Break out the data into a new 2-d array called $tscores
for ($i = 0; $i < $numreadin; $i++)
{
 $g = unserialize($oscores[$i]);
 $tscores[$i][0] = $g[0];
 $tscores[$i][1] = $g[1];
}

// Fill in any missing data with none/0
for ($i = $numreadin; $i < $scoresize; $i++)
{
 $tscores[$i][0] = 0;
 $tscores[$i][1] = "none";
}

// Process the actions	

// Insert a score/name
if ($action == "INSERT")
{

 // Add name to end of list, and sort
 $tscores[$scoresize + 1][0] = $winscore;
 $tscores[$scoresize + 1][1] = $winname;
 rsort ($tscores);

 $file=fopen($filename, "w");

 // Write them out
 for ($i = 0; $i < $scoresize; $i++)
 {
 	$st = serialize($tscores[$i]) . "\n";
 	fputs($file, $st);
 }

 fclose($file);
}

// Clear the list	
if ($action == "CLEAR")
{

 $k[0] = 0;
 $k[1] = "none";
 $ser = serialize($k);

 $file=fopen($filename, "w");

 for ($i = 0; $i < $scoresize; $i++)
 {
 	$st = $ser . "\n";
 	fputs($file, $st);
 }

 fclose($file);
}

// Process the OUTPUT options
if ($viewtype == "HTML")
{
  // HTML PAGE CREATED HERE
  ?>


 <table cellpadding=2 cellspacing=2 border=0 width="152">
 <tr align=center> 
 <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">#</font></th>
 <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">Name</font></th>
 <th bgcolor="#000033"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">Score</font></th>
 </tr>

     <?

 for ($i = 0; $i < $scoresize; $i++)
 {
 	echo ("<tr bgcolor='#666666' align='center'><td><font size='2' face='Arial, Helvetica, sans-serif'>");
 	echo ($i + 1);
 	echo ("</font></td><td><font size='2' face='Arial, Helvetica, sans-serif'>");
 	echo ($tscores[$i][1]);
 	echo ("</font></td><td><font size='2' face='Arial, Helvetica, sans-serif'>");
 	echo ($tscores[$i][0]);
 	echo ("</font></td></tr>");
 }

    ?>
 </table>
  <?

}

// FLASH DATA CREATED HERE
if ($viewtype == "FLASH")
{
 for ($i = 0; $i < $scoresize; $i++)
 {
 	echo ("NAME" . $i . "=");
 	echo ($tscores[$i][1]);
 	echo ("&SCORE" . $i . "=");
 	echo ($tscores[$i][0]);
 	echo ("&");
 }
}

?>

Videoannonse
Annonse
Skrevet
Jeg tror det har noe med rsort() eller noe sånt.

 

 // Add name to end of list, and sort
 $tscores[$scoresize + 1][0] = $winscore;
 $tscores[$scoresize + 1][1] = $winname;
 rsort ($tscores);

8324121[/snapback]

Tror det er slik at rsort http://us2.php.net/manual/en/function.rsort.php sorterer fra høyeste til laveste.

For å sortere motsatte vei så kan du bruke sort http://us2.php.net/manual/en/function.sort.php den sorterer fra laveste til høyeste. Kanskje dette hjelper?

 

Har ikke sett så nøye på koden din...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...