Le filtre |push s’applique à une balise contenant un tableau PHP (voir #ARRAY) et y ajoute une nouvelle valeur.
La clé est incrémentée de 1 à chaque nouvelle valeur. Si aucune clé n’a été définie pour la première valeur, le tableau est indexé à partir de 0 (la première clé est 0).
#SET{un_tableau,#ARRAY{5,une_valeur}}
#SET{un_tableau,#GET{un_tableau}|push{une_autre_valeur}}
#SET{un_tableau,#GET{un_tableau}|push{une_troisieme_valeur}}
[(#GET{un_tableau}|foreach)] affiche :
- 5=> une_valeur
 - 6=> une_autre_valeur
 - 7=> une_troisieme_valeur
 
La première clé est 5 parce qu’elle a été précisée lors de la création du tableau (premier #SET).
Exemple courant d’usage de |push :
#SET{mes_articles, #ARRAY}
<BOUCLE_mes_articles(ARTICLES){...}>
#SET{mes_articles, #GET{mes_articles}|push{#ID_ARTICLE}}
</BOUCLE_mes_articles>
Si les articles sélectionnés par la BOUCLE portent les numéros 2, 5 et 10, [(#GET{mes_articles}|foreach)] retourne :
- 0=>2
 - 1=>5
 - 2=>10
 
Ici, la première clé est zéro car aucune clé n’a été définie préalablement.
Contrairement à la fonction PHP array_push, |push ne produit pas de message d’erreur si la balise filtrée n’est pas un tableau.