Vinzenz Mai: for-Schleife einbinden

Beitrag lesen

Hallo,

Ich gehe weiterhin davon aus, dass Deine Daten in einem zweidimensionalen Array vorliegen. Dabei enthält jede "Zeile" gleich viele Zellen. Um das Prinzip zu verstehen, genügt ein Beispiel mit zwei Zeilen, die jeweils drei Zellen haben.

Ja die Annahme ist richtig.
Pro array sind es 11 Werte, die aber in zwei Reihen ausgegeben werden.

Aus 11 Werten plus die Zeilennumerierung werden zwei Zeilen, d.h. aus einem (Zeilen-)array wird

Zähler  1. El  2. El  3. El  4. El   5. El
6. El   7. El  8. El  9. El  10. El  11. El

Zähler  1. El  2. El  3. El  4. El   5. El
6. El   7. El  8. El  9. El  10. El  11. El

und so weiter

Und in Zelle $a soll eine fortlaufende Nr. stehen, die Zählung soll mit 1 beginnen und mit 404 enden, weil es insgesamt 404 Arrays sind.

Du benötigst einen Zeilenzähler, nicht einen Zellenzähler.
Du darfst den Zeilenzähler nur bei jeder Datenzeile einmal hochzählen
Weiterhin benötigst Du einen Zellenzähler, der bei jeder Zeile von vorn zählt, damit Du an geeigneter Stelle die neue Zeile einleiten kannst (und die CSS-Klasse zuweisen kannst).

Die Verarbeitungslogik wäre wie folgt.

Initialisiere Zeilennumerierung
Beginne HTML-Tabelle
Für jede Datenzeile
    Initialisiere die Zellennumerierung
    Beginne erste HTML-Zeile

Beginne HTML-Zelle
    Schreibe Zeilennumerierung
    Erhöhe Zeilennumerierung
    Schließe HTML-Zelle

Für jede Zelle in der Zeile
        Beginne HTML-Zelle
        Schreibe aktuellen Wert
        Schreibe HTML-Zeilenumbruch ;-)
        Schreibe Wert:, Zellennummer
        Erhöhe Zellennummer
        Schließe HTML-Zelle ab
        Wenn Du aufgrund der Zellennummer das Ende der ersten Zeile erkennst
            Schließe erste HTML-Zeile ab
            Beginne zweite HTML-Zeile
        Ende Wenn
    Ende "Für jede Zelle"
    Schließe HTML-Zeile ab
Ende "Für jede Zeile"
Schließe HTML-Tabelle ab

Anmerkung: Aufgrund der Zellennummer in der Datenzeile kannst Du problemlos die entsprechende CSS-Klasse zuweisen. Schreibe dazu einfach die Klassen in ein Array und nutze die Zellennummer als Arrayindex.

Weitere Anmerkung:
Benötigst Du wirklich zwei Tabellenzeilen pro Datenzeile? Wäre es nicht viel verständlicher (insbesondere mit entsprechenden Spaltenüberschriften), wenn es je Datenzeile genau eine Zeile in der HTML-Tabelle gäbe - auch wenn dies bei 11 Spalten vermutlich bei vielen Benutzern zu horizontalem Scrolling führt?

Freundliche Grüße

Vinzenz