simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Rangliste nach Punkten

Je nach Punktestand einen Rang zuweisen.

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. Das PHP Code Beispiel:
<?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);

?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.