- Declarar una matriz :
#SET{mi_matriz, #ARRAY{clave1,valor1,clave2,valor2...}}
- Recuperar el valor asociado a una clave utilizando el filtro |table_valeur :
[(#GET{mi_matriz}|table_valeur{clave})]
- Llenar una matriz dinámicamente utilizando el filtro |push :
#SET{palabras_clave_elejidas, #ARRAY{}}
<BOUCLE_themes(MOTS) {id_article}>
[(#SET{palabras_clave_elejidas, #GET{palabras_clave_elejidas}|push{#ID_MOT}})]
</BOUCLE_themes>
Para forzar los valores de las claves con la función php utilizando como filtro |array_merge:
#SET{palabras_clave_elejidas, #ARRAY{}}
<BOUCLE_themes(MOTS) {id_article}>
[(#SET{palabras_clave_elejidas,
#GET{palabras_clave_elejidas}|array_merge{#ARRAY{
#COMPTEUR_BOUCLE, #ID_MOT
}}
})]
</BOUCLE_themes>
Advertencia 1 : el filtro |array_merge
no tiene en cuenta la clave a forzar (#COMPTEUR_BOUCLE en el ejemplo anterior) si esa clave es de tipo numérico. Este caso tiene dos soluciones :
- sea prefijando esta clave con una valor alfabético. :
#ARRAY{k#COMPTEUR_BOUCLE, #ID_MOT}
; - sea invirtiendo clave y valor (con la condición que valor no sea numérica también) y aplicar la función php como filtro |array_flip a la matriz final:
[(#SET{palabras_clave_elejidas, #GET{palabras_clave_elejidas}|array_flip)]
Advertencia 2 : Hay que declarar la matriz antes de llenarla con un bucle.
Nota 1 : El orden de llenado de la matriz se determina por el orden de aparición de datos en el bucle, por lo que depende de otros criterios de clasificación aplicados.
Nota 2 :[(#GET{mi_arreglo}|table_valeur{6})]
mostrará el valor asociado a la clave número 6 de la matriz; es decir el 7mo valor: la numeración de las claves (índices) empieza en cero.
- Utilizar la matriz con un bucle con el operador IN:
<BOUCLE_memes_themes(ARTICLES) {id_mot IN #GET{palabras_clave_elejidas}|sinon{0}}>
...
- Visualización condicional en función de los valores de una matriz :
[(#ENV{page}|in_array{#ARRAY{0,article,1,rubrique,2,site}}|oui)
Visualización condicional ]
otro ejemplo con una variable ’lolo’pasada por la url:
http://le_site/-ma-rubrique-?lolo=6
[Así se mostrará si el valor de la variable ’lolo’ pasado por la url está presente en la matriz 'les_mots' declarada y llenada anteriormente.
(#ENV{lolo}|in_array{#GET{les_mots}}|oui)
así lo mostrará también]
Para evitar generar un error « Warning : in_array() [function.in-array] : Wrong datatype for second argument. » en el caso que la variable pasada no sea de tipo matriz se puede utilizar el filtro |in_any que captura el error sin mostrar la alerta, y poder obtener un valor aleternativo.
[(#VAL{abc}|in_any{#GET{tablo}, truco a realizar si GET_tablo no es una matriz}|oui|?{truco a realizar si abc es un valor de GET_tablo, truco a realizar si abc no es un valor de GET_tablo})]