eine Zufallszahl aus einer Reihe von Zahlen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • eine Zufallszahl aus einer Reihe von Zahlen

    Hallo,

    Ich möchte mir aus vielen nicht aufeinander folgenden Zahlen eine zufällige rausziehen.

    Ist-zustand ist ein array in dem z.B. die Zahlen:

    1, 11, 15, 16, 23, 236, 255, 266

    stehen. Wie kann ich nun zufällig eine von diesen Zahlen in eine Variable schreiben lassen?

  • #2
    schau dir shuffle() oder array_rand() an
    Kissolino.com

    Kommentar


    • #3
      vielen Dank!!!

      bin dadurch auf diese Lösung gekommen die auch läuft =)

      PHP-Code:
      srand((double)microtime() * 10000000);
      $array = array("1""3""8""25"
      "55""65""86""74");
      $one array_rand($array1);
      $result $array[$one ];
      echo 
      "$result wurde gewählt"

      Kommentar


      • #4
        PHP-Code:
        $array = array(138);
        echo 
        $array[array_rand($array,1)]; 
        ungetestet, könnte aber so ähnlich funktionieren.

        Kommentar


        • #5
          gibt es damit nun ne Möglichkeit 3 werte rauszuziehen wo alle 3 verschieden sind?

          im moment isset ja immer nur einer.

          Kommentar


          • #6
            und selbst denken?

            PHP-Code:
            $array = array(1,2,3,4,5,6);

            # <optional>
            $tempArr $array;
            shuffle($tempArr);
            # </optional>

            echo $tempArr[0].'<br/>';
            echo 
            $tempArr[1].'<br/>';
            echo 
            $tempArr[2].'<br/>';

            unset (
            $tempArr); 

            Kommentar


            • #7
              okay nu hab ich ne Lösung gefunden die auch gut mixt!

              PHP-Code:
              //Die Funktion
              function my_array_rand($input,$i=2){
                 
              srand((float) microtime() * 10000000); 
                 
              $rand_keys array_rand($input$i); 
                 
              $res = array();
                 if(
              $i 1){
                    for(
              $a=0;$a<$i;$a++){
                       
              $res[] = $input[$rand_keys[$a]];
                    }
                 }
                 else{
                 
              $res[] = $input[$rand_keys];    
              }
              shuffle ($res);
              return 
              $res;
              }

              //Die Ausgabe
              srand((float) microtime() * 10000000); 
              $pic my_array_rand($profilpics,2);

              $query_zufall mysql_query("
              SELECT distinct id 
              FROM usertable 
              WHERE id = '"
              .$pic[0]."' OR id = '".$pic[1]."' limit 0,2"); 
              Ist für 2 Zufallsbilder in meinem Nutzen.
              wenn Verbesserungsvorschläge sind dann ab.

              Kommentar


              • #8
                absoluter unfug. die lösung mit shuffle() hätte gereicht, aber jetzt, wo man mehr sieht, kann auch mehr meckern:

                1. du willst 2 zufällige datensätze aus der db selektieren? http://dev.mysql.com/doc/refman/5.0/...html#id3196840

                2. du schreibst "SELECT distinct id". soll das bedeuten, du hast doppelte ids vergeben? wie soll das gehen?

                Kommentar


                • #9
                  okay also das disticnt war mein fehler da ich ne sql abfrage fix aus meinem script kopiert hatte.

                  dein RTFM link is mir bekannt. ich habs schon gelesen und getestet und es war schlächt. jdf schlechter als mein totaler unfug. da oftmals die selben statements aus der db geladen worden sind. genauso wenn ich nur shuffle benutzt hatte. aber ich denke mal das es immernoch an mir liegt und ich werde deinem tip mal nachgehen. dankeschön

                  das srand keinen manuell-generierten startpunkt mittels microtime oder so mehr braucht ist aber korrekt?!

                  Kommentar

                  Lädt...
                  X