- Pour
 #SET{tablo, #ARRAY{0,a,1,b,2,c,3,d}}
,
[(#GET{tablo}|foreach)]`
retourne :
- 0=> a
 - 1=> b
 - 2=> c
 - 3=> d
 
- Pour
&tab[]=aa&tab[]=bb&tab[]=cc&tab[]=dd 
passé dans l’URL,
[(#ENV{tab}|foreach)]
retourne :
- 0=> aa
 - 1=> bb
 - 2=> cc
 - 3=> dd
 
-  Si la balise à laquelle est appliquée le filtre |foreach est un tableau linéarisé (voir les fonctions PHP), il est indispensable de lui appliquer le filtre |unserialize après l’avoir étoilée préalablement :
par exemple : [(#ENV*|unserialize|foreach)].
-  On peut forcer l’utilisation d’un modèle autre que foreach.html en appelant : [(#GET{tablo}|foreach{mon_modele})] où mon_modele.html est le modèle personnalisé à utiliser et que l’on aura pris soin de placer dans squelettes/modeles/.
- Exemple : afficher la liste des noms des plugins actifs utilisés sur le site
Le fichier de modèle modeles/liste_plug.html contiendra :
[<li>(#ENV{valeur}|strtolower)</li>]
et sera appelé par :
 [<ul>(#PLUGIN*|unserialize|foreach{liste_plug})</ul>]
Remplacement par la boucle DATA
Le filtre foreach étant déprécié à partir de SPIP 4.0, il est conseillé de le remplacer par d’autre formes d’écriture et notamment avec la boucle DATA.
Ce qui s’écrivait
[(#LISTE{a,b,c,d}|foreach)]
peut s’écrire :
<BOUCLE_liste(DATA){source tableau, #LISTE{a,b,c,d}}>
- #CLE => #VALEUR <br />
</BOUCLE_liste>