Ankündigung

Einklappen
Keine Ankündigung bisher.

Lottozahlen Array Max () nach Shuffle

Einklappen

Neue Werbung 2019

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

  • Lottozahlen Array Max () nach Shuffle

    Guten Tag werte Profis...

    Folgendes Problem:
    Lottozahlen Script funktioniert tadellos:

    PHP-Code:
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8" />
      <title>E2_lotto</title>
    </head>
    <body>
    <h1>Lottozahlen</h1>
    <?php
        
    echo "Die gezogenen Zahlen sind: ";
        
    $lotto range(149);
        
    shuffle($lotto);
        for (
    $a=1;$a<=6;$a++)
        {
            echo 
    "$lotto[$a], ";

        }


    ?>
    </html>
    Mein Problem ist nun, das ich den höchsten shuffle Wert im Array ausgeben möchte.
    Dieser gibt mir aber immer nur die im Vorfeld deklarierte 49 aus dem range Bereich aus, berücksichtigt also nicht den Shuffle nicht.

    Über eine Lösung würde ich mich sehr freuen, vielen Dank im Voraus.

  • #2
    Ein shuffle() entfernt keine Werte. 49 bleibt immer erhalten.

    Kommentar


    • #3
      Du zeigst auch nicht dein Versuch das Maximum zu bestimmen im obigen Code. Und welches Maximum meinst du?

      Kommentar


      • #4
        Zitat von Hintermoser Beitrag anzeigen
        Mein Problem ist nun, das ich den höchsten shuffle Wert im Array ausgeben möchte.
        PHP-Code:
        var_dump($lotto); 
        Damit sollte klarer werden, womit du tatsächlich arbeitest.

        Kommentar


        • #5
          Beispiel
          PHP-Code:
          <?php
          $lotto 
          = array();
          $zahl range(1,49);
          shuffle($zahl);

          $lotto array_slice($zahl06);

          echo 
          'Die gezogenen Zahlen sind: ' implode(", "$lotto) . "</br>\n";
          echo 
          'Höchste gezogene Zahl: ' max($lotto) . "<br>\n";
          echo 
          'Niedrigste gezogene Zahl: ' min($lotto) . "<br>\n";

          sort($lotto);

          echo 
          'Sortiert: ' implode(", "$lotto) . "</br>\n";
          echo 
          'Höchste gezogene Zahl: ' end($lotto) . "<br>\n";
          ?>
          https://www.php.net/manual/en/function.max.php
          https://www.php.net/manual/en/function.end.php

          Kommentar


          • #6
            Vielen Dank für Eure Anregungen und Lösungsvorschläge.
            Da ich als Anfänger noch versuche die Zusammenhänge logisch zu verstehen, dachte ich mir bei meinem Ursprünglichen Lösungsansatz:
            Range erstellt mir ein Array von 0 - 48, in Zahlen dann 1 - 49. Da das Array immer komplett vorhanden bleibt, kann ich zwar "shufflen" aber der höchste Wert wird immer 49 bleiben, habe ich verstanden, vielen Dank noch einmal an der Stelle.

            Also dachte ich mir gut, dann sollen 6 Zufallszahlen eben in ein neues Array übergeben werden und dieses kann ich dann mit max() auslesen.
            Ich bekomme zwar nun keinen Fehler mehr ausgegeben aber max() liefert ca. nur 50% den richtigen Wert.
            Geh ich mit var_dump an mein Array sieht das für meine Leienaugen zunächst gut aus.

            Es wäre sehr nett, wenn mir jemand logisch erklären würde, warum auch diese Lösung nicht so recht möchte.
            Vielen Dank!

            PHP-Code:
            <?php
            $Lotto
            =range(1,49);
            Shuffle($Lotto);

            for (
            $a=1;$a<=6;$a++)
            {
             echo 
            $arraylotto[] = $Lotto[$a]."</br>";

            }


            echo 
            "Die höchste Zahl ist: ".max ($arraylotto);
            //var_dump($arraylotto);

            ?>

            Kommentar


            • #7
              *push*

              Kommentar


              • #8
                Zitat von Hintermoser Beitrag anzeigen
                Geh ich mit var_dump an mein Array sieht das für meine Leienaugen zunächst gut aus.
                Es ist aber nicht gut - du schreibst da noch ein (ohnehin falsches) </br> mit rein, dadurch wird das als String verglichen und dann ist 9</br> eben größer als 10</br>. Und hör auf nach nichtmal 24h zu drängeln!

                Kommentar


                • #9
                  Zitat von tk1234 Beitrag anzeigen
                  Es ist aber nicht gut - du schreibst da noch ein (ohnehin falsches) </br> mit rein, dadurch wird das als String verglichen und dann ist 9</br> eben größer als 10</br>. Und hör auf nach nichtmal 24h zu drängeln!
                  Gutes Auge

                  echo $arraylotto[] = $Lotto[$a]."</br>";
                  Da sind Zuweisung und Ausgabe vermischt.

                  $arraylotto[] = $Lotto[$a];
                  So passt das.
                  [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                  [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                  Kommentar


                  • #10
                    Also dachte ich mir gut, dann sollen 6 Zufallszahlen eben in ein neues Array übergeben werden und dieses kann ich dann mit max() auslesen.
                    Geht auch mir array_slice(), siehe oben. Und dann kannst du zB die 6 Zahlen noch auch mit sort() sortieren oder eben mit max() die höchste ausgeben etc etc..

                    Wie im Grunde in #5 schon alles gezeigt.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Vielen Dank, jetzt passt es!
                      Das mit dem String war mir auch aufgefallen, nun wird es logisch.

                      Ich wünsche Euch weiterhin sonnige Tage, lG

                      Kommentar

                      Lädt...
                      X