![]() |
[PHP] Highscore Script meets 2-dimensionalen Array
Hi ich versuche auf meiner Seite einen Highscorescript zu schalten.
Mit
Code:
lade ich mir die 10 besten Scores in einen Array.
while($row = mysql_fetch_object($abfrage))
{ $Highscore[] = array('Rang' => $row->idRank,'Name' => $row->idName,'Score' => $row->idScore,'Datum' => $row->idDate); } Und da geht es auch schon los... Wie sortieren ich diesen 2-dimensionalen Array nach der Score? Gibt es vielleicht eine ähnliche Arraydefinition wie in Delphi?
Delphi-Quellcode:
array:Highscore(Name,Score):string;
|
Re: [PHP] Highscore Script meets 2-dimensionalen Array
Vielleicht suchst du ja
Code:
Diese Funktion macht das:
void asort ( array array [, int sort_flags]);
Zitat:
Code:
<?php
$fruits = array ("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel"); asort ($fruits); reset ($fruits); while (list ($key, $val) = each ($fruits)) { echo "$key = $val\n"; } ?> Flare |
Re: [PHP] Highscore Script meets 2-dimensionalen Array
Hm ich glaube das isses nicht, ich suche eine Funktion in der ich einen Array nach einem beliebigen Element sortieren kann.
|
Re: [PHP] Highscore Script meets 2-dimensionalen Array
Das ist es was du brauchst:
Code:
Allerdings sieht es so aus, als bekaemest du das result aus einem mysql-result. Warum nicht gleich im query angeben "ORDER BY idScore"? Das duerfte naemlich das schnellste sein.
function cmp($a, $b)
{ if ($a['score'] == $b['score']) return 0; return ($a['score'] > $b['score']) ? -1 : 1; } uksort($Highscore,"cmp"); Und wenn ich schonmal dabei bin deinen qt zu organisieren: Statt mysql_fetch_object kannst du auch mysql_assoc nehmen: $result =mysql_query('SELECT spalte1 AS bla,spalte2 AS blubb FROM tab ORDER BY spalte1'); while($row =mysql_fetch_assoc($result)) $Highscore[] =$row; Der wert mit dem mysql_fetch_assoc seine arrays indiziert ist naemlich der, den du im sql-query per AS angibst. Wenn du AS nicht angibst nimmt er den Name der Spalte. |
Re: [PHP] Highscore Script meets 2-dimensionalen Array
Klasse danke :) Ich hatte nicht dran gedacht, dass das auch über mySQL gehen könnte.
|
Re: [PHP] Highscore Script meets 2-dimensionalen Array
Okay das geht nun, aber jetzt will ich noch einen neuen Datensatz einfügen und da stellt sich mir die Frage wie ich in einer foreach-Schleife auf das nächste oder voherige Objekt zugreife. Der Quellcode sollte dann so aussehen.
Code:
foreach($Highscore as $Eintrag)
{ if (($gesamt)>$Eintrag[Score]) AND ($Gesamt<=$Eintrag[Score]+1)) {neusortieren();} } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz