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.