Manchmal kann es nötig sein eine Liste mit unterschiedlichen Zufallszahlen zu erstellen. Ein mögliches Anwendungsszenario hierfür könnte zum Beispiel ein Gewinnspiel sein, bei dem die Gewinner zufällig ausgewählt werden, ein einzelner Teilnehmer jedoch nicht mehr als einmal gewinnen soll. Wie das in PHP funktioniert, zeigt euch das nachfolgende Snippet.
<?php //Wir legen eine Array mit den Zahlen an, aus denen //die Zufallszahlen gewählt werden sollen $array = range($minimum, $maximum); //Wir initialisieren den Zufallszahlengenerator srand ((double)microtime()*1000000); //Die Schleife ermittelt in jedem Durchlauf eine Zufallszahl for($x = 0; $x < $AnzahlDerZufallszahlen; $x++) { //Es wird eine Zufahlszahl generiert $i = rand(1, count($array))-1; //Die generierte Zufallszahl dient als Index für das Array //mit den Zahlen aus denen wir wählen $erg[] = $array[$i]; //Die gewählte Zufallszahl wird aus dem Auswahlzahlen- //Array entfernt, damit Sie nicht doppelt gewählt werden kann array_splice($array, $i, 1); } ?>
Hinweis: $minimum, $maximum und $AnzahlDerZufallszahlen müsst ihr natürlich vorher noch festlegen.
Viele Grüße,
Raffi
Wie kann ich die Zufallszahlen jetzt ausgeben?
Ausgeben kannst du das Array mit den Zufallszahlen mit der Funktion print_r() (siehe: http://php.net/manual/de/function.print-r.php )
Konkret für mein Beispiel würde das so aussehen:
Viele Grüße,
Raffi
Moin,
man sollte für ein Gewinnspiel oder so etwas nie rand() benutzen. Die Funktion liefert keine wirklichen “Zufallszahlen”. Lieber mt_rand() benutzen.
Lg
René
Hallo René,
danke für den Hinweis. Ich habe mich noch mal ein wenig schlau gemacht. Das größte Argument für mt_rand(), dass ich finden konnte ist aber lediglich die höhere Geschwindigkeit. Worauf genau spielst du an?
Viele Grüße,
Raffi