Zahlen vergleichen und auswerten

ich hole mir aus dem Web die Lottozahlen ($z1 - $z6)
diejenigen, mit denen ich spiele, sind $m11 - $m16.

    //das generierte array
    $gen = array ($m11,$m12,$m13,$m14,$m15,$m16);
    //die richtigen und echten lottozahlen
    $real = array ($z1,$z2,$z3,$z4,$z5,$z6);

    print "sie haben folgende zahlen getippt:";


    for ($i=0; $i<=5; $i++)
    //der führt jetzt 6 mal (0 bis5) die aktion aus
    {
    //resultend = beinhaltet danach den unterschied zwischen generierten und den realen zahlen
    $resultend = array_diff ($gen, $real);
        //vergleichen wir jetzt die realen zahlen mit dem rest von den generierten:
        //resultend hat in sich nur noch die falschen zahlen, bei denen es keine übereinstimmung gibt.
        if ($resultend[$i] != $gen[$i])
            {
                //resultend beinhaltet den falschen wert:
               print "nr $i.)[b]" . $gen[$i] . "[/b] (ist richtig!) 
";
            }
            else
            {
                //resultend beinhaltet keinen wert:
                print "
 nr $i.)" . $gen[$i] . " ist falsch";
            }
    }

Nun hab ich versucht, diese zu vergleichen mit dem gewünschten Ergebnis und mir das Resultat auszugeben. Bin zwar nahe dran, denn die 17 ist richtig (leider nur in IPS)

Ausgabe =
sie haben folgende zahlen getippt:
nr 0.)5 ist falsch
nr 1.)11 ist falsch
Notice: Undefined offset: 2 in [Analyse\Lotto\Swisslotto] on line 69
nr 2.)17 (ist richtig!)

nr 3.)22 ist falsch
nr 4.)39 ist falsch
nr 5.)44 ist falsch

dies ist Zeile 69:

    if ($resultend[$i] != $gen[$i])

was mach ich da falsch?

Was steht in den arrays?


  //das generierte array
    $gen = array ($m11,$m12,$m13,$m14,$m15,$m16);
    //die richtigen und echten lottozahlen
    $real = array ($z1,$z2,$z3,$z4,$z5,$z6);

mach mal ein print_r

wenn ich das print_r vor $gen oder vor $real setzte, bekomme ich

Parse error: syntax error, unexpected T_VARIABLE in [Analyse\Lotto\Swisslotto] on line 57

print_r($gen);

dies ergibt:

Array
(
[0] => 5
[1] => 11
[2] => 17
[3] => 22
[4] => 39
[5] => 44
)

Notice: Undefined offset: 2 in [Analyse\Lotto\Swisslotto] on line 68

Das kann so nicht gehen, da das array $resultend aus weniger als 6 Werten besteht. Außer im Idealfall, dann hättest Du 6 Richtige.:smiley:

Das kann so nicht gehen, da das array $resultend aus weniger als 6 Werten besteht

das sind doch 6? :confused:

$gen = array ($m11,$m12,$m13,$m14,$m15,$m16)

Außer im Idealfall, dann hättest Du 6 Richtige

da warte ich noch auf „back to the future“ :rolleyes:

Diese Zeile:


$resultend = array_diff ($gen, $real); 

$resultend ist ein array welches nur Unterschiede speichert, also nicht immer 6 Stück.

Der Fehler liegt quasi bei $resultend[$i].

So sollte es gehen:


$gen = array ($m11,$m12,$m13,$m14,$m15,$m16);
$real = array ($z1,$z2,$z3,$z4,$z5,$z6);  
for ($i=0; $i<=5; $i++)	foreach($gen as $wert) if($wert == $real[$i]) echo "$wert ist richtig getippt worden."."
";

Hier hast was zum spielen. :smiley:

//das generierte array
$getippteZahlen = array (5,9,17,23,32,48);
//die richtigen und echten lottozahlen
$gezogeneZahlen = array (5,11,17,25,39,48);


for($i=0; $i<count($getippteZahlen); $i++)
{
    if(in_array($getippteZahlen[$i] ,$gezogeneZahlen))
   {
      echo "Sie haben die ".$getippteZahlen[$i]." richtig getippt!
";
   }
   else
   {
       echo "Leider haben Sie keine Übereinstimmung
";
   }
}

danke Euch beiden für die Umsetzung. Nun hab ich nur noch das Problem mit der Ausgabe. Hab gesucht wie wild (wirklich), aber den Wert wie mit der Ausgabe echo in eine Variable schreiben, geht noch nicht.

Ausgabe bei zwei richtigen Zahlen „1417“.

Den Rest überlass ich jetzt mal dir. :eek:

echo $getippteZahlen[$i]." ";

soweit bin ich auch gekommen. Die „echo“ Ausgabe stimmt ja auch.
Aktuell „14 17“. In die Variable (String) wird aber nur 17 geschrieben.