Deux achat de viagra quebec étaient morts entre-temps. Il y achat kamagra france pharmacie a le dossier médical. Elles ne le viagra est il en vente libre en suisse seront pas transmises à des organismes tiers. Cette estrace pas cher proposition ne semble désormais plus d actualité. Cannabis acheter viagra soft A 17 ans, 42 % des ados en ont déjà fumé. L étudiante conseil pour acheter du viagra au sourire sage est devenue une icône. Elle propecia prix quebec a annulé son rendez-vous. Ce n achat de viagra france est pas la quantité, mais la qualité qui importe. De quoi atarax pas cher sur ce point faire surtout des mécontents. Il www.lasilix a été dur avec moi. Ce acheter lasix sont les syndicats de médecins. C viagra en ligne france est un préjudice collectif, insiste M. J meilleur site de vente de viagra ai très peu de souffrance physique. Les propecia prix de vente médecins sont dans une situation paradoxale. Leur viagra générique en suisse état peut se prolonger des mois, voire des années. Sa cialis et viagra en ligne maladie est d origine professionnelle. #ARRAY - SPIP
SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [vi] [zh] Espace de traduction

Télécharger

#ARRAY

Juin 2009 — mis à jour le : Août 2010

Toutes les versions de cet article :

La balise #ARRAY peut contenir un tableau PHP, c’est-à-dire un ensemble de paires clé/valeur, que l’on veut stocker pour les réutiliser dans la suite du squelette.

Le tableau doit être déclaré par la balise #SET et peut ensuite être récupéré par la balise #GET [1].

Il peut être utilisé ensuite, entre autres, associé au critère IN d’une boucle.


Déclarer un tableau et récupérer des valeurs

-  #SET{mon_tableau, #ARRAY{cle1,valeur1,cle2,valeur2}}
crée la variable mon_tableau et lui affecte un tableau PHP comme valeur, qui pourrait être représenté comme suit :

ClésValeurs
cle1 valeur1
cle2 valeur2

Il n’est pas nécessaire d’entourer les chaines de caractères avec des guillemets simple ou double, sauf pour spécifier une chaine vide qui s’écrira ’’

-  À des fins de test, on peut afficher le tableau grâce au filtre |foreach.

[(#GET{mon_tableau}|foreach)] affichera :

  • cle1=> valeur1
  • cle2=> valeur2

-  La valeur associée à une clé donnée peut être récupérée en utilisant le filtre |table_valeur :

[(#GET{mon_tableau}|table_valeur{cle1})] retourne valeur1.

-  Vérifier la présence d’une valeur dans le tableau avec le filtre |find [2] :

Remplir un tableau dynamiquement

Un intérêt des tableaux est de les remplir dynamiquement, par les résultats d’une ou plusieurs boucle(s).

Le tableau doit alors être déclaré par un #SET avant la boucle : #SET{mon_tableau,#ARRAY}

Dans la boucle, un nouveau #SET redéfinit mon_tableau à chaque itération : on le récupère par #GET et on y ajoute une nouvelle valeur grâce aux filtres |push ou |array_merge.

L’ordre des valeurs du tableau dépend des critères de tri de la boucle.

-  |push ajoute simplement une valeur à la fin du tableau. La clé est indexée automatiquement : elle est incrémentée de 1 à chaque itération de la boucle et ce, à partir de 0 (la première clé est 0, puis 1, 2, 3,...).

Exemple : créer un tableau mots_choisis contenant les #ID_MOT de tous les mots-clés liés à un article.

Si les mots liés à cet article portent les numéros 4, 9 et 18, [(#GET{mots_choisis}|foreach)] retourne :

  • 0=>4
  • 1=>9
  • 2=>18

Notez bien que [(#GET{mots_choisis}|table_valeur{2})] retourne 18, la valeur associée à la clé 2, donc la troisième valeur du tableau.

-  |array_merge ajoute une paire clé/valeur à la fin du tableau. Cela permet donc de forcer le "nom" des clés.

Attention (1) : si une clé apparaît plusieurs fois, seule la dernière valeur pour cette clé sera retenue.

Attention (2) : la clé que l’on veut forcer ne peut pas être de type numérique. En effet, la documentation de array_merge précise :

Si vous passez un seul tableau à cette fonction et qu’il a des index numériques, les clés seront réindexées normalement.

Il existe deux solutions à cette limitation :

-  préfixer cette clé avec une valeur alphabétique :

[(#GET{mots_choisis}|foreach)] retourne :

  • mot4=>Pomme
  • mot9=>Banane
  • mot18=>Carotte

-  inverser clé et valeur, à condition que valeur ne soit pas elle aussi numérique :

[(#GET{mots_choisis}|foreach)] retourne :

  • Pomme=>4
  • Banane=>9
  • Carotte=>18

Dans ce cas, on pourra appliquer la fonction PHP |array_flip comme filtre sur le tableau final (après la boucle) :

[(#SET{mots_choisis, #GET{mots_choisis}|array_flip})]

[(#GET{mots_choisis}|foreach)] retourne alors :

  • 4=>Pomme
  • 9=>Banane
  • 18=>Carotte

Utiliser le tableau dans une boucle avec l’opérateur IN

Reprenons le tableau mots_choisis contenant des #ID_MOT, on peut sélectionner ensuite les articles liés aux mêmes mots-clés que notre article initial grâce au critère IN.

Cette utilisation connaît de multiples usages, notamment lorsque l’on veut sélectionner des objets à l’aide de plusieurs critères qui ne peuvent faire partie de la même boucle, puis les mélanger entre eux avec un critère de tri unique.

Exemples d’utilisation des tableaux

-  Affichage conditionnel en fonction de la page (valeur de #ENV{page}) :

-  Affichage conditionnel en fonction d’une variable passée dans l’URL [3] :

-  Sélectionner les articles d’une rubrique et ceux associés par ailleurs à un mot-clé puis lister tous ces articles par date.

Notes

[1Voir #SET et #GET pour plus de détails.

[2|find correspond à la fonction PHP in_array, à la différence que ce filtre ne produit pas le message d’erreur "Warning : in_array() [function.in-array] : Wrong datatype for second argument." si la variable n’est finalement pas un tableau. En effet, lorsqu’une variable est générée dynamiquement, on ne sait pas toujours si elle existera et s’il s’agira bien d’un tableau.

[3Voir #SELF et |parametre_url.


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé