25.7. Wie kann ich aus einem Zahlenbereich von x bis y, zufällig n Zahlen auswählen, so dass keine Zahl doppelt vorkommt?Antwort von Guido HaegerMit der Funktion array_rand() . In PHP3 steht diese Funktion nicht zur Verfügung. Nachfolgende Funktion liefert hier bessere Ergebnisse, als shuffle() auf das Array anzuwenden und dann die n Zahlen zu verwenden. <?PHP function generate_numbers($min, $max, $anz) { $array = range($min, $max); srand ((double)microtime()*1000000); for($x = 0; $x < $anz; $x++) { $i = rand(1, count($array))-1; $erg[] = $array[$i]; array_splice($array, $i, 1); } return $erg; } // 5 eindeutige Zahlen im Bereich von 1 bis 100 ermitteln $zufalls_array = generate_numbers(1, 100, 5); echo join("; ", $zufalls_array); ?> |
||
25.7. Wie kann ich aus einem Zahlenbereich von x bis y, zufällig n Zahlen auswählen, so dass keine Zahl doppelt vorkommt? http://www.php-faq.de/q/q-code-zufallszahlen.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |