#ARRAY ... récupérer une valeur via sa clé

Bonsoir,

comment récupérer un élément d'un tableau crée avec array et affecté à une variabl test avec #SET, via sa clé ???

#SET{test,#ARRAY{cle1,val1,cle2,val2}}

comment récupérer #GET{test}=>cle2 ???

J'ai pas trouvé la doc sur la syntaxe.

Merci
RB

Le 29/07/07, rburton a écrit :

Bonsoir,

comment récupérer un élément d'un tableau crée avec array et affecté à
une variabl test avec #SET, via sa clé ???

#SET{test,#ARRAY{cle1,val1,cle2,val2}}

comment récupérer #GET{test}=>cle2 ???

J'ai pas trouvé la doc sur la syntaxe.

Dans Les balises propres au site - SPIP :

La balise #SET{variable,valeur} et son pendant #GET{variable} ont été
introduites par SPIP 1.9.1. La balise #SET{xxx,yyy} affecte une valeur
yyy à une variable xxx propre au squelette calculé. Cette valeur peut
être récupérée par la balise #GET{xxx}. Les variables créées ainsi ne
sont pas transmises au squelette inclus.

et SPIP 1.9.2 - SPIP :

et #ARRAY{cle1,valeur1,cle2,valeur2...} permet de créer une variable
tableau (utile pour affecter un tableau dans un #SET et/ou pour
utilisation dans un critère IN dynamique)

et Les critères communs à toutes les boucles - SPIP pour le IN

{xxxx IN a,b,c,d} à partir de [SPIP 1.8], limite l'affichage aux
résultats ayant le critère xxxx égal à a, b, c ou d. Les résultats
sont triés dans l'ordre indiqué (sauf demande explicite d'un autre
critère de tri). Il est aussi possible de sélectionner des chaînes de
caractères, par exemple avec {titre IN 'Chine', 'Japon'}.

Avec SPIP 1.9, les balises sont admises dans les arguments de IN, et
notamment la balise ENV, ............

Peut-être simplement avec {titre IN 'Chine', 'Japon'} où Chine=cle1, ....
Pour les docs sur les balises.. Glossaire - SPIP surtout pendant
les vacances :slight_smile:

--
@plus

Jacques

Pour les lyonnais++ spip-lyon@rezo.net http://spip-party.net/-Lyon-
Plugins zippés Téléchargement : http://spip.jermer.fr/?Liste-des-zip-produits
Remercier Spip et les plugins (Crédits) :

http://spip.jermer.fr/?Plugin-plugins-actifs-version-5

Gérer ses squelettes & thèmes en interne :

http://spip.jermer.fr/?Spip-1-92a-Plugin-Admin-themes

Bonsoir

Ben j'avais lu ...

Mais mon cerveau doit être embrumé

Peut-être simplement avec {titre IN 'Chine', 'Japon'} où Chine=cle1, ....
Pour les docs sur les balises.. Glossaire - SPIP surtout pendant
les vacances :slight_smile:

si je reprends mon exemple
#SET{test,#ARRAY{cle1,val1,cle2,val2}}

je ne veux pas faire un test ... sinon j'utiliserais un filtre - fonction php (une des fonctions array-qqchose).

je veux simplement ramener une valeur (inconnue) par le moyen de sa clé, via une balise de type #GET{test[cle2]}

les trois articles que tu cites et l'exemple que tu me donnes me permettent de tester si la valeur est prsente dans le tableau mais pas de récupérer directement une valeur via sa clé ???

je n'ai trouvé nulle part un exemple de syntaxe pour ce que je veux faire...

où c'est moi qui suis décidément bon à aller dormir ?

Merci
RB

Bonjour

J'ai utilisé dans un script (que j'ai laissé tombé parce qu'il ne
fonctionnait pas, et que l'on peut obtenir le résultat avec le
critère doublons)

#ARRAY{#GET{cmptrindex},#DATE}

et, j'ai utilisé les autres fonctions : array_merge par exemple.

Je ne sais pas si c'est que tu recherches exactement comme exemple,
j'espère que ça t'aidera.

A bientôt
Grégoire

Grégoire a écrit :

Bonjour

J'ai utilisé dans un script (que j'ai laissé tombé parce qu'il ne
fonctionnait pas, et que l'on peut obtenir le résultat avec le
critère doublons)

#ARRAY{#GET{cmptrindex},#DATE}

et, j'ai utilisé les autres fonctions : array_merge par exemple.

Je ne sais pas si c'est que tu recherches exactement comme exemple,
j'espère que ça t'aidera.

A bientôt
Grégoire

Bonjour,

merci, mais c'est toujours pas ça (à moins d'avoir mal lu ton code)

en faisant
#SET{test,#ARRAY{1,'val1',2,'val2'}}
#ARRAY{#GET{test},2}

j'obtiens
<b>Warning</b>: Illegal offset type in <b>/home/www/a3af547134cfe76edecdb4ce0bfe3c54/web/ecrire/public/composer.php(71) : eval()'d code</b> on line <b>367</b><br />

c'est dingue ça que ce soit si "obscur" de récupérer un valeur d'un tableau via sa clé quand on s'est donné la peine de créer cette balise #array !

Merci
RB

rburton wrote:

en faisant
#SET{test,#ARRAY{1,'val1',2,'val2'}}

c'est dingue ça que ce soit si "obscur" de récupérer un valeur d'un tableau via sa clé quand on s'est donné la peine de créer cette balise #array !

Oui, alors tu peux aaplliquer les fontion php dessus deja, genre :

[(#GET{test}|array_pop)]

Par extension tu peux aussi te faire un filtre

[(#GET{test}|valeur{2})] par ex

avec

function valeur($tableau,$cle){
return $tableau[$cle] ;
}

ca te donnera val2 si je ne dis pas de bétise.

Mais je suis d'accord que la doc n'est pas très claire sur l'utilisation de la balise #ARRAY en dehors du IN dynamique.

BoOz

Ah, en fait cerdic nous signale que le filtre existe déjà et que c'est

[(#ARRAY|table_valeur{cle})]

BoOz

BoOz wrote:

Oui, alors tu peux aaplliquer les fontion php dessus deja, genre :

[(#GET{test}|array_push)]

Par extension tu peux aussi te faire un filtre

[(#GET{test}|valeur{2})] par ex

avec

function valeur($tableau,$cle){
return $tableau[$cle] ;
}