foreach, foreachelse
Attribut Name
Typ
Erforderlich
Standardwert
Beschreibung
from
string
Ja
n/a
Name des zu durchlaufenden Array.
item
string
Ja
n/a
Name für das aktuelle Element.
key
string
Nein
n/a
Name für den aktuellen Schlüssel.
name
string
Nein
n/a
Name der 'foreach'-Schleife, für die Abfrage der 'foreach'-Eigenschaften.
Die foreach Schleife ist eine Alternative zu section.
foreach wird verwendet, um ein assoziatives Array
zu durchlaufen. Die Syntax von foreach-Schleifen ist viel einfacher als
die von section. foreach tags müssen mit /foreach
tags kombiniert werden. Erforderliche Parameter sind: from und
item. Der Name der 'foreach'-Schleife kann frei vergeben werden
und sowohl Buchstaben, Zahlen als auch Unterstriche enthalten.
foreach-Schleifen können verschachtelt werden, dabei ist
zu beachten, dass sich die definierten Namen voneinander unterscheiden.
Die from Variable (normalerweise
ein assoziatives Array) definiert die Anzahl der von foreach
zu durchlaufenen Iterationen. foreachelse wird ausgeführt wenn
keine Werte in der from Variable übergeben wurden.
foreach
{* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *}
{foreach from=$KundenId item=aktuelle_id}
id: {$aktuelle_id}<br>
{/foreach}
AUSGABE:
id: 1000<br>
id: 1001<br>
id: 1002<br>
foreach key
{* Der Schlüssel enthält den Schlüssel des jeweils iterierten Wertes
die Zuweisung sieht wie folgt aus:
$smarty->assign("kontakte", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
*}
{foreach name=aussen item=kontakt from=$kontakte}
{foreach key=schluessel item=wert from=$kontakt}
{$schluessel}: {$wert}<br>
{/foreach}
{/foreach}
AUSGABE:
phone: 1<br>
fax: 2<br>
cell: 3<br>
phone: 555-4444<br>
fax: 555-3333<br>
cell: 760-1234<br>
Foreach-Loops haben auch eigene Variablen welche die Foreach Eigenschaften enthalten.
Diese werden wie folgt ausgewiesen: {$smarty.foreach.foreachname.varname}. foreachname
ist der Name der als name Attribut von Foreach übergeben wurden.
iteration
gibt die aktuelle iteration aus
iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.
first
first ist TRUE wenn die aktuelle Iteration die erste ist
last
last ist TRUE wenn die aktuelle Iteration die letzte ist
show
show wird als Parameter von foreach verwedet und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird
nichts ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
total
total gibt die Anzahl Iterationen des Foreach Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.