Met het filter |push
kun je een waarde aan een tabel toevoegen. Het filter wordt dus toegepast op een baken dat een PHP tabel (zie #ARRAY
) bevat en voegt er een nieuwe waarde aan toe.
De sleutel (key) wordt bij iedere nieuwe waarde met 1 verhoogd. Is nog geen enkele sleutel voor de tabel gebruikt, dan begint de indexering bij 0 (de eerste sleutel is 0).
#SET{een_tabel,#ARRAY{5,een_waarde}}
#SET{een_tabel,#GET{een_tabel}|push{nog_een_waarde}}
#SET{een_tabel,#GET{een_tabel}|push{volgende_waarde}}
[(#GET{een_tabel}|foreach)]
geeft weer:
- 5=> een_waarde
- 6=> nog_een_waarde
- 7=> volgende_waarde
De eerste sleutelwaarde is hier 5 omdat deze bij het aanmaken van de array werd aangegeven (bij de eerste #SET
).
Vaak gebruikte toepassing van |push
:
#SET{mjn_art, #ARRAY}
<BOUCLE_mijn_artikelen(ARTICLES){...}>
#SET{mijn_art, #GET{mijn_art}|push{#ID_ARTICLE}}
</BOUCLE_mijn_artikelen>
Wanneer de door de lus geselecteerde artikelen de id’s 2, 5 en 10 hadden, zal [(#GET{mijn_art}|foreach)]
weergeven:
- 0=>2
- 1=>5
- 2=>10
Hier is de eerste sleutelwaarde dus 0, omdat geen andere beginwaarde werd aangegeven.
In tegenstelling tot de PHP functie array_push
genereert |push
geen foutcode als het gefiltreerde baken geen array is.