dedlfix: letztes Komma entfernen

Beitrag lesen

Tach!

wie würdet ihr das letzte Komme entfernen wenn keine weiteren Einträge mehr vorhanden sind? Muss ich hier mit einem Zähler arbeiten oder hat PHP dafür eine dafür vorgesehene Funktion?

Eine Möglichkeit wäre, das Komma mit rtrim() zu entfernen. Dazu muss der String aber gesammelt und nicht sofort stückweise ausgegeben werden.

Eine andere ist, durch eine andere Vorgehensweise es gar nicht erst zu diesem Komma kommen lassen. Ich würde ein Array erzeugen und das mit implode() zu einem String konvertieren. Dabei entstehen nur Kommas zwischen den Einträgen. Nun ist aber dein Array noch nicht direkt implodierbar. Das kann man lösen, indem man erst ein zweites Array aufbaut, für das Name und Vorname wie gewünscht zusammengebaut werden. Diese Angelegenheit kann man mit foreach lösen, aber auch funktional mit array_map(). Das überlass ich dir. foreach wird dir wohl leichter fallen.

Nun noch was anderes:

if($KalenderUser > 0) {
  
  foreach($KalenderUser as $array){ ?>

Da $KalenderUser ein Array ist, ist ein Vergleich mit einem Integerwert nicht sinnvoll. PHP muss dazu das Array in einen Integerwert konvertieren, damit es da einen Vergleich anstellen kann. Es ist jedoch nicht definiert, was bei einer Konvertierung von Array nach Integer passiert. Dein Konstrukt funktioniert auf diese Weise nur zufällig. Du möchtest aber eigentlich wissen, ob Elemente vorhanden sind. Das geht zwar mit count() zu zählen, aber dich interessiert die Anzahl nicht wirklich, weswegen die Zählung unnötig ist. Andererseits ist definiert, wie ein Array in ein Boolean konvertiert werden kann. Ein leeres Array ergibt false, wenn Elemente vorhanden sind ergibt es true.

if($KalenderUser) {

Das wäre also gültig und ergibt was du möchtest. Aber, wenn du auf ein leeres Array foreach anwendest, passiert auch nichts. Wenn das if lediglich das foreach verhindern soll, so ist es nicht notwendig. Du brauchst es nur, wenn noch mehr als nur das foreach im if-Block steht.

dedlfix.