Array sortieren :)

Also das ist das was nicht so funktioniert wie ich das gerne hätte :)

PHP:
 ?php
 // Das sind die anzahlt der Spieler die auf dem Server sind
$anzahl = $this->serverinfo["players"];
 
 if($anzahl == "0")
 {
 	echo "<b>Es sind derzeit keine Spieler auf dem Server</b>";
 }
 else
 {
 ?>
 <table width=500>
 <tr>
 <td>&nbsp;</td>
 <td><b>Name</b></td>
 <td><b>Frags</b></td>
 <td><b>Spielzeit</b></td>
 </tr>
 <?php
 // Hier sollen die Spieler ausgegeben werden, aber halt nach Frags sortiert
 for($usr = 0; $usr < $anzahl; $usr++)
 {
 // wenn ein spieler connected ist ja noch kein name vorhanden, deswegen diese if
 // anweisung
 if(!$this->playerinfo[$usr]["name"])
 {
 	$this->playerinfo[$usr]["name"] = "?";
 	$this->playerinfo[$usr]["index"] = $usr + 1;
 }
 // Die Variable index ist halt die id des users und der rest erklärt sich von selber ;)
 ?>
 <tr>
 <td><?php echo $this->playerinfo[$usr]["index"]."."; ?></td>
 <td><?php echo $this->playerinfo[$usr]["name"]; ?> </td>
 <td><?php echo $this->playerinfo[$usr]["frags"]; ?> </td>
 <td><?php echo $this->playerinfo[$usr]["time"]; ?> </td>
 </tr>
 <?php
 }
 ?>
 </table>
 <?php
 }
 ?>

tjo das is der teil wo ich derzeit hänge ... also das das funktionieren kann was du da schreibst leuchtet mir ein, aber ich muss mich erstmal da durchlesen, was das alles so genau macht und so...

kannst ja anhand des codes mir mal nen beispiel schreiben wie es klappen könnte :)

Mfg Sascha
 
Mal ein Beispiel:
PHP:
<?php

$user=array();
$user[10]['name']="Fritz";
$user[10]['frags']=100;
$user[10]['time']=150;
$user[5]['name']="Peter";
$user[5]['frags']=90;
$user[5]['time']=100;
$user[15]['name']="Martin";
$user[15]['frags']=60;
$user[15]['time']=300;
// Das sind die anzahl der Spieler die auf dem Server sind
$anzahl = count($user);

if($anzahl == "0") {
    echo "<b>Es sind derzeit keine Spieler auf dem Server</b>";
} else {
?>
<table width=500>
<tr>
<td>Platz</td>
<td><b>Name</b></td>
<td><b>Frags</b></td>
<td><b>Spielzeit</b></td>
</tr>
<?php

// Vor der Ausgabe sortieren!
function comparar($a, $b) {
    return strnatcasecmp($a["frags"], $b["frags"]);
}
uasort($user, "comparar");

//Zähler für den Platz
$i=1;
foreach($user as $usr => $values) {
    if(!$values["name"]) {
        $values["name"] = "?";
        $values["index"] = $usr + 1;
    }
?>
<tr>
<td><?php echo $i."."; ?></td>
<td><?php echo $values["name"]." (id=".$usr.")"; ?> </td>
<td><?php echo $values["frags"]; ?> </td>
<td><?php echo $values["time"]; ?> </td>
</tr>
<?php
    $i++;
}
?>
</table>
<?php
}
?>
Übernimm das aber nicht wieder eins zu eins und sag' es geht nicht, sondern mache Dir Gedanken, wie Du das verwenden kannst.
 
hey super :)

ich habe es ohne probleme einbauen können. deins war zwar in die falsche richtung also absteigend sortiert, aber dazu musste ich ja nur a und b vertauschen.

vielen dank, hab wieder einiges gelehrnt und bin ohne ende weiter gekommen.

mfg Sascha
 
Zurück