Zur Navigation

Tabelle wird nicht richtig dargestellt

1 webuser

Hallo,
ich will Lottozahlen in einer Tabelle formatiert darstellen.
Aber die Ausgabe ist falsch.
Die erste Zeile ist richtig, aber dann stimmt es nicht mehr.
1-2-3-4-5-6-7
2-4-6-8-10-12-14
3-6-9-12-15-18-21
usw.

Gruß
webuser

  
                                 $eins = floor ($unique[0]);
                                 $zwei = floor ($unique[1]);
                                 $drei = floor ($unique[2]);
                                 $vier = floor ($unique[3]);
                                 $fuenf = floor ($unique[4]);
                                 $sechs = floor ($unique[5]);
                                 $sieben = floor ($unique[6]);



                              echo "<table border =\'1\' style='border-collapse: collapse'>";
                                          for ($row=1; $row < 8; $row++) {
                                          echo "<tr> \n";
                                          for ($col=1; $col < 8; $col++) {
                                          $p = $col * $row;
                                       if ($p== $eins or $p == $zwei  or $p == $drei or $p == $vier or $p == $fuenf or $p == $sechs or $p == $sieben) { echo "<td class='treffer'>$p</td> \n";}  else {echo "<td class='normal'>$p</td> \n";}
                                       }
                                            echo "</tr>";
                                          }
                              echo "</table>";

06.01.2019 13:24

2 Jörg Kruse

Als erstes würde ich den Code sauber einrücken, damit man die Kontrollstrukturen besser überblicken kann. Schleifendurchgänge würde ich in solchen Fällen immer mit 0 beginnen, das lässt sich hier auch leichter rechnen. Der Reihenindex wird mit 7 multipliziert, hinzuaddiert werden der Spaltenindex plus 1:

for ($row = 0; $row < 7; $row++) {
    for ($col = 0; $col < 7; $col++) {
        $p = 7 * $row + $col + 1;
    }
}

06.01.2019 17:57 | geändert: 06.01.2019 17:57

3 webuser

Hallo,
danke Jörg.
Die Darstellung ist jetzt richtig. Aber bei der Ausgabe sind manchmal alle
7 Felder richtig markiert, manchmal aber auch nur 3, 4, 5 oder 6.
Die Variablen §eins, $zwei.... sind immer sauber gefüllt.
Ich hatte jetzt die Idee das mit mit
in_array ev. prüfen muss:
    echo "<tr> \n";
                for ($col=0; $col < 7; $col++) 
                     {
                          $i = 7 * $row + $col + 1;
                          if (in_array($i,$unique[])) { echo "<td class='treffer'>$i</td> \n";}  else {echo "<td class='normal'>$i</td> \n";}
                     }
    echo "</tr>";
                                          }
aber dann wird nichts angezeigt, keine Fehlermeldung.
Gruß
webuser

06.01.2019 20:24

4 Jörg Kruse

$unique[] bezeichnet ein weiteres Element von $unique. Als zweiter Parameter von in_array() muss einfach die Bezeichnung des Arrays $unique angegeben werden:

if (in_array($i,$unique))

06.01.2019 21:47

1 Forenmitglied fand diesen Beitrag gut

5 webuser

Danke Jörg.

07.01.2019 22:53

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]