Häufig benötigte Codeschnipsel

Wie kann ich aus einem Zahlenbereich von x bis y zufällig n Zahlen auswählen, sodass keine Zahl doppelt vorkommt?

Drucken

Mit 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 );
?>
Wie kann ich aus einem Zahlenbereich von x bis y zufällig n Zahlen auswählen, sodass keine Zahl doppelt vorkommt?
http://www.php-faq.de/q-code-zufallszahlen.html