Zufallszahlen, aber jede nur einmal

Ken89

Mitglied
Hallo,

für ein Auslosungssystem möchte ich bsp. die Zahlen zwische 1 und 10 zufällig auswählen, dabei darf jede Zahl aber nur einmal vorkommen.

gibt es dafür eine speziele "rand()" funktion oder wie löse ich diese Problem am besten

schon mal vielen dank :)
 
Bei den Zahlen 1 bis 10 lässt du dir die erste Zahl ausgeben und packst sie in ein Array. Beim nächsten mal lässt du so lange ien neuen Zufallszahl ausgeben bis diese nicht im Array enthalten ist.
Die zahl speicherst du dan auch wieder im Array und so weiter.
 
ok danke

ich hab mal folgedes versucht, klappt aber nicht, (mit while schleifen kenn ich mich auch nicht wirklich aus :eek:

PHP:
<?php
$max = 15;

$zufall = array();

for($i=1;$i<$max+1;$i++)
{
       
    $x = rand(1,$max);
    
    while(!in_array($x,$zufall))
    $x=$zufall[$i];

echo "$zufall[$i]<br />"; 
}



?>
 
PHP:
    $zahlen = array();
    for( $i=0; $i < 5; $i++ ) {
        $temp = rand( 1,10 );
        if( in_array( $temp, $zahlen ) )
        {
            $i--;
            continue;
        }
        $zahlen[] = $temp;
    }
Achte darauf, dass du nicht mehr Durchläufe machst wie du Zahlen hast. Wenn du 12 Mal deine Schleife durchläufst, aber es darf nur jede Zahl von 1 - 10 einmal vorkommen, gibt es zwei Zahlen zuwenig und die Schleife wird nie beenden ( Endlosschleife ).
 
Zuletzt bearbeitet:
Hallo,

das geht aber auch noch etwas einfacher:
PHP:
<?php

$max = 15;

$zahlen = range(1, $max);
shuffle($zahlen);
# Falls z.B. nur 5 Zahlen benötigt werden:
# $zahlen = array_slice($zahlen, 0, 5);

print_r($zahlen);

?>

Grüße,
Matthias
 
Zurück