Rolf B: Wert wird nicht ausgegeben, ich finde den Fehler nicht

Beitrag lesen

Hallo Jörg,

Eigentlich sonnenklar, was der Code machen soll

Eigentlich gar nicht.

Du lässt eine Schleife über $arrDay[$myUser][$Datum]['Vorgang'] laufen, was hoffentlich ein Array ist. Die Array-IDs und Werte kommen nach $ID und $value - werden dann aber in der Schleife überhaupt nicht verwendet.

Unter php 7.4 hat der Code auch funktioniert, aber seit php 8.1 nicht mehr.

Nein. Doch! Ohhhh! Und was sagt uns das jetzt? Was erwartest Du? Was passiert statt dessen? Kommt eine Fehlermeldung? Hast Du die Ausgabe von Fehlermeldungen eingeschaltet?

Ich würde erwarten, dass pro Schleifendurchlauf eine Anzahl von <br> ausgegeben wird und danach in einem Span mit Klasse rot1b der Wert des DaySum-Eintrags. Die Anzahl der <br> ist um eins weniger als die Anzahl der Einträge im Vorgang-Array. Ich würde auch annehmen, dass $AnzahlTermine identisch ist mit count($arrDay[$myUser][$Datum]['Vorgang']

Und damit würde ich das, was ich da sehe, so formulieren:

while (...):

   $filler = str_repeat("<br>", max(0, $AnzahlTermine - 1));
?>
   <?= $filler ?>
   <span class='rot1b'><?= $arrDay[$myUser][$Datum]['DaySum']?></span>
<?php

endwhile;

Update: alternative Kontrollstrukturen verwendet, echo vermieden.

Es ist übrigens eher nicht nötig, die Positionierung mit <br> durchzuführen. Man kann auch über CSS erreichen, dass die Summe am unteren Rand der Zelle steht, die Du da ausfüllst. Für eine Tabellenzelle gibt's die vertical-align:bottom Eigenschaft. Bei einem Grid kann man auch mit align-items bzw. align-self arbeiten.

Rolf

--
sumpsi - posui - obstruxi