PHP Zufallsgenerator mit bestimmten Werten

Die PHP-Funktion rand() — Erzeugt einen zufälligen Integerwert. Als Parameter kann man den niedrigste zurückzugebende Wert (Vorgabe: 0) und den höchsten zurückzugebende Wert (Vorgabe: get_randmax()) übergeben. Was ist aber wenn man Zufallszahlen aus bestimmten Nummernblöcken haben möchte, z.B. 1 – 3 und 6 – 9?

Man erzeugt ein Array mit den gewünschten Werten und lässt sich die Anzahl der Werte ausgeben. Mit der Anzahl der Werte im Array greift man auf den zufälligen Key vom Array zu und erhält über diesen Key einen zufälligen Wert aus dem definierten Bereich.
Beispiel:

// Array mit Werten erzeugen:
$i = array(1,2,3,6,7,8,9);

// Anzahl ermitteln und um eins subtrahieren, da
//der Array-Key bei 0 beginnt:
$anz = count($i) – 1;

// Auf zufälligen Array-Key zugreifen:
$random = $i[rand(0,$anz)];

// Wert ausgeben
echo $random;

Eigentlich ganz einfach und sehr variabel einsetztbar. Für weitere Lösungswege wäre ich sehr dankbar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.