Zufallsgenerator (Lottozahlen) Doppelte Zahlen vermeiden

Ungetestet:
PHP:
<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8" />
  <title>Lottoziehung</title>
  </head>
  <body>
  <h1>Lottozahlen</h1>
<?php
  // Array erstellen
  $Lottozahlen = array();

  // Schleife
  for($i=0; $i<7; $i++)
  {
  // Eine Zahl zwischen 1 und 49
  $Ziehung = mt_rand(1,49);

  // Prüfen ob Zahl bereits vorhanden
  if (in_array($Ziehung, $Lottozahlen))
  {
  $i--;
  continue;
  }

  // In Array laden
  $Lottozahlen[] = $Ziehung;
  }

  // Mit Komma trennen
  $Lottozahlen = implode(',', $Lottozahlen);

  //
  echo "Die Lottozahlen dieser Wochen lauten: ".$Lottozahlen;
?>
  </body>
</html>
 
hallo...und vielen Dank

wenn ich in meinem script nach der letzten anweisung $lottozahlen[] = $ziehung; echo mit implode ausgebe und foreach weglasse geht es auch.
wenn ich mein script mit foreach lasse bekomme ich zahlen nebeneinander wie auf der abbildung.

Screenshot (111).png

geht es aber denn nicht auch ohne IMPLODE ?

ich lerne etwas php aus heften, und implode ist dort kein thema. diese methode implode wird nicht erwähnt. themen in diesem heft sind if....if else...else if und switch case. dann while...do-while und for mit flag variablen. arrays (num/assozia.) mit und ohne foreach, und halt die multidimensionalen sind die themen bei denen ich bin. nur kein wort von implode darin.

jemand eine idee?

danke alice und xlooch...sehr lieb von euch
 
Hallo und danke Alice / Sheel...

der Bauer hatte nur Kartoffelessen satt :p.

Ich wollte es ja nur anders. Einen anderen Weg.
Es sind ja nur Übungen für mich. Da kann das Script auch etwas länger ausfallen.


HTML:
<?php
$lottoZahlen = [];
$gezogen = 0;
while ($gezogen < 6)
{
    $doppelt = false;
    $ziehen = mt_rand(1,49);
   
    foreach ($lottoZahlen as $wert)
    {
            if ($wert == $ziehen)
            {
                $doppelt = true;
                break;
            }
    }
       
    if ($doppelt == false)
    {
        $lottoZahlen[] = $ziehen;
        $gezogen++;
    }
}
echo "<p>Die gezogenen Zahlen sind: ";
foreach ($lottoZahlen as $wert)
    {
        echo "$wert, ";
    }
echo "</p>";
?>

Danke euch allen lieben und weniger lieben :D
 
Für die höhere Schönheit:

PHP:
echo "<p>Die gezogenen Zahlen sind: ";

$first = true;

foreach ($lottoZahlen as $wert) {
    if ($first == true) {
        $first = false;
    } else {
        echo ", ";
    }

    echo $wert;
}

echo "</p>";
 

Neue Beiträge

Zurück