Foreach-Konstrukt bietet eine Möglichkeit über Variablen vom Typ „Sammlung“ oder über JSON Arrays im API Response zu iterieren.
Die Grundsyntax sieht wie folgt aus:
foreach ($iterable$, {number_of_iterations}) statement endforeach
Der erste Parameter $iterable$ definiert über welche Variable iteriert wird, der zweite Parameter (numerisch, optional) legt die Anzahl an Iterationen fest.
Foreach für Sammlungen
In unserem Beispiel wird der/die Nutzer:in gebeten, seine/ihre Lieblingsfarben auszuwählen. Die ausgewählte Farben werden in der Variable $color$ vom Typ Sammlung gespeichert. Der Bot bestätigt die Farbauswahl und gibt die in der Variable $color$ gespeicherte Farben zurück (max. 3). Es wird dabei über die Variable $color$ iteriert.
Es werden maximal 3 Werte $value$ aus der Sammlung angezeigt, vorangestellt vom jeweiligen Index $index$. Innerhalb von einer Schleife kannst Du auf die Werte der Sammlung über die Variable $value$ und auf die jeweilige Indizes über die Variable $index$ zugreifen.
So sieht der Dialog in WhatsApp aus:
Foreach für JSON Arrays
Ähnlich wie bei Sammlungen kannst Du über JSON Arrays im API Response iterieren. In unserem Beispiel wird dem/der Nutzer:in die Wettervorhersage für die nächsten 3 Tage aus einem Aufruf zu Openweather API geschickt.
Openweather JSON-Response beinhaltet ein Array mit täglichen Wetterinformationen für die nächsten Tagen:
Das gesamte Response wird in der Variable $api$ gespeichert. Über einen Json-Pfad kannst Du auf das Array zugreifen und es als Parameter einsetzen ($api.daily$). Innerhalb von der Schleife kannst Du direkt auf die jeweilige Attribute zugreifen (in unserem Beispiel: $temp.day$, $weather.0.description$).
Der Dialog sieht in WhatsApp wie folgt aus: