gleiche zahl vermeiden

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

  • gleiche zahl vermeiden

    hallo

    ich ermittle mir 6 zahlen per zufall

    PHP Code:
    $zahl1 rand(1,100); // u.s.w 
    wie kann ich verhindern das gleiche zahlen vorkommen?

    mfg

  • #2
    eine zufallszahl ist zufällig, also gar nicht.

    aber man könnt edas als schleife oder ähnliches machen und dann mit einer if bedingung abfragen, ob die zahl bereits vergeben wurde.

    Comment


    • #3
      PHP Code:
      $temp = array();
      $i 0;
      while(
      $i<6){
          
      $zahl1 rand(1,100);
          while(
      in_array($temp,$zahl1)){
              
      $zahl1 rand(1,100);
          }
          
      $temp[] = $zahl1;
          
      $i += 1;

      Bin gerade erst aufgestanden, sollte aber so funzen Die äussere Schleife ist für deine 6 Zahlen zuständig und die innere wird solange durchlaufen, bis die Zufallszahl nicht im Array existiert...

      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
        Leg die bereits' gezogenen in dem Array ab und prüfe mit in_array().
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Comment


        • #5
          Original geschrieben von jahlives
          PHP Code:
          $temp = array();
          $i 0;
          while(
          $i<6){
              
          $zahl1 rand(1,100);
              while(
          in_array($temp,$zahl1)){
                  
          $zahl1 rand(1,100);
              }
              
          $temp[] = $zahl1;
              
          $i += 1;

          Bin gerade erst aufgestanden, sollte aber so funzen Die äussere Schleife ist für deine 6 Zahlen zuständig und die innere wird solange durchlaufen, bis die Zufallszahl nicht im Array existiert...

          Gruss

          tobi
          und wie lasse ich mir die 6 zahlen nu ausgeben???

          mfg

          Comment


          • #6
            z.b.:
            PHP Code:
            foreach($temp as $val) {
                echo 
            $val;

            oder

            PHP Code:
            echo implode(' '$temp); 

            Comment


            • #7
              das kannste noch optimieren:

              PHP Code:
              $temp = array();
              for(
              $i=0;$i<6; ){
                 if(!
              in_array$temp$z=rand(1,100) )){
                      
              $temp[] = $z;
                      
              $i++;
                  }

              Comment


              • #8
                PHP Code:
                $arr range(1,100);
                shuffle($arr);
                $arr array_slice($arr06); 

                Comment

                Working...
                X