Rangliste nach Punkten

Je nach Punktestand einen Rang zuweisen.
Beispiel ausführen
Das wird häufig in Foren und Boards eingesetzt um den Teilnehmern je nach Anzahl der Beiträge unterschiedliche Bezeichnungen zuzuweisen. Diese Aufgabenstellung lässt sich sehr einfach über eine While-Schleife lösen. Je nachdem welcher Fall der häufigere ist sollte man die aufsteigend oder die absteigend geordnete Variante wählen. Im Kopf der While-Schleife wird hier die "lazy evaluation" ausgenutzt um mehrere mit AND verbundene Anweisungen auszuführen bis eine dieser Anweisungen false zurückliefert. Daher kommt man hier mit einem leeren While-Rumpf aus. Es ist allerdings unter dem Gesichtspunkt der Nachvollziehbarkeit des Codes diskussionswürdig ob man hier nicht doch lieber eine gesprächige Variante wählen sollte.
<?php
// Rangliste
// je nach Punktestand eine bestimmte Bezeichnung zuweisen


// Bsp. 1) absteigend geordnet ...

$rank = array();

$rank[500]     = 'Medizinmann';
$rank[200]     = 'Oberhäuptling';
$rank[100]     = 'Häuptling';
$rank[50]     = 'Unterhäuptling';
$rank[20]     = 'Indianer';
$rank[10]     = 'Halbstarker';

$n 121;


while ( (
$level current($rank)) && key($rank) > $n && next($rank) ){}

printf ('<em>%d</em> =&gt;<strong>%s</strong><br />',$n$level);



// Bsp. 2) aufsteigend geordnet ...

$rank = array();

$rank[10]     = 'Halbstarker';
$rank[20]     = 'Indianer';
$rank[50]     = 'Unterhäuptling';
$rank[100]     = 'Häuptling';
$rank[200]     = 'Oberhäuptling';
$rank[500]     = 'Medizinmann';


while ( (
$level current($rank)) && next($rank) && key($rank) <= $n ){}

printf ('<em>%d</em> =&gt;<strong>%s</strong><br />',$n$level);

?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff