Doppelte Werte in Zufallszahl vermeiden

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Doppelte Werte in Zufallszahl vermeiden

    Hallo,

    ich erzeuge mit ...
    PHP Code:
    for($i=0;$i<5;$i++){ 
    $zufall[] = rand(120); 

    ...Zufallszahlen und lege sie hintereinander in ein Array.
    Wie kann ich verhindern, dass Zahlen doppelt vorkommen?

  • #2
    ich wuerde das einfach mit ner whileschleife machen, die solange geht bis 20 werte eingetragen sind.
    eintragen tuste nur, wenn der wert noch nciht im array existiert (if?).

    ka wie es sonst gehen soll...

    mfg
    Immer schoen den Quelltext brechen....
    Sorry: UMBRECHEN!

    Comment


    • #3
      Indem du jede Zufallszahl in einem Array speicherst und bei jeder neuen Zufallszahl erst prüfst ob das letzte Element bereits die Zahl war (so verhinderst du 2 gleiche Werte nacheinander), oder ob die Zahl im Array bereits vorkommt (so verhinderst du, dass überhaupt zwei gleiche Werte vorhanden sind).
      PHP Code:
      $temp = array();
      for(
      $i=0;$i<5;$i++){
          
      $zahl rand(120); 
          while(
      in_array($zahl,$temp)){
              
      $zahl rand(120); 
          }
          
      $temp[] = $zahl;

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Comment


      • #4
        danke für die schnelle Hilfe. Funktioniert super.

        Comment


        • #5
          PHP Code:
          $arr range120 );
          shuffle $arr );
          $arr array_slice $arr 0);

          print_r($arr); 

          Comment


          • #6
            in der kürze liegt die... unübersichtlichkeit:

            PHP Code:
            $arr array_rand range120 ), );
            print_r($arr); 

            Comment

            Working...
            X