pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
28 déc. 2005 à 12:37
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
29 déc. 2005 à 11:38
Bonjour!
voici un exemple de tableau :
$Liste1[0]= Array(132,1);
$Liste1[1]= Array(516,1);
$Liste1[2]= Array(891,1);
Lorsque je fais:
$Indice="0";
echo $Liste1[$Indice];
j'ai "Array" qui s'affiche : c'est normal !!!
Sauf que si je veux faire un truc du style :
$Indice="0[0]";
ou
$Indice="[0][0]";
alors là il me plante mon echo $Liste1[$Indice] alors que je voudrais voir 132 d'afficher.
Comment faire pour passer les indices d'un tableau numérique dans ma variable?
Merci de votre réponse.
A bientôt.
ou directement :
$indices = array (0, 0);
echo $Liste1[$tmp[0]][$tmp[1]];
tu peux ainsi changer les indices facilement :
$indice[1] = 1;
echo $Liste1[$tmp[0]][$tmp[1]]; // va afficher 1
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 28 déc. 2005 à 14:00
Merci à tous pour cette spontanéité!
Pour toi coucou747, tu dis :
echo $Liste1[0][0]
ICI ON MET DES INT !!!! pas des strings !!!
Et bien justement, en réalité j'ai pas tout dit mais en fait j'ai créé une fonction qui va rechercher dans des tableaux de tableaux de tableaux ... et qui retourne le chemin de l'indice où se trouve la valeur cherchée.
Voilà le prototype de ma fonction :
function RechercheValeurTableau($Tableau,$Valeur)
Ma variable $Tableau peut contenir d'autres tableaux dans ce tableau comme :
$Liste1[0]= Array(Array(132,1),Array(3),23);
$Liste1[1]= Array(Array( 516 ,1),Array(8),64);
$Liste1[2] = Array(Array(891,1),Array(6),56);
Là comme tu vois y'a des tableaux dans des tableaux.
Donc quand je fait par exemple :
$Indice=RechercheValeurTableau($Liste1,516)
la valeur de $Indice est "[1][0][0]".
Après je veux faire :
echo $Liste1[$Indice] mais ca plante.
Voilà tu sais tout sur "pourquoi c'est en string" et c'est pourquoi j'ai posté. Je n'arrive pas à passé des paramètres string
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 déc. 2005 à 14:09
Heu,
Ok, j'aurais dû mettre $indice1 = 0, mais j'étais parti sur ses exemples, simplement. ceci dit, je suis aussi parti du principe que je ne savais pas comment il allait utiliser ceci (d'où les différents exemples).
Parce que si ce sera
$indice1 = $_POST['indice1']; // perso j'utiliserais directement le post, avec un check sur son type
ça ne change pas grand chose. Le but était juste de lui montrer comment il pouvait faire, pas de lui dire ce qu'il allait en faire...
Quant à la façon de construire le tableau...je ne vois pas le problème ? Tout dépend encore une fois de l'utilisation dans le script.
En fait, si on doit aller dans la "bonne programmation" à chaque explication, je serais tenté de dire que c'est mal codé, ton truc, Coucou... ;-) :
$indice1 = 0;
$indice2 = 0;
// code
if (isset ($Liste1) && is_array ($Liste1) && isset ($indice1) && is_int ($indice1) && isset ($indice2) && is_int ($indice2)) {
if (isset ($Liste1[$indice1][$indice2])) { // faudrait pas dépasser la pile...;-)
echo $Liste1[$indice1][$indice2];
}
}
Et encore, je suis sûr que j'oublie des trucs...(on pourrait raccourcir hein, mais j'ai fait long exprès).
De toutes façons, comme J_G, je trouve la façon de faire crade. Il est curieux d'accéder à un tableau comme ça.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 déc. 2005 à 14:34
Coucou => ça marche pas (j'avais déjà essayé dans les solutions que je voulais lui proposer); ou alors je me suis mal débrouillé (c'est encore possible). De toutes façons, c'est crade aussi les variables variables ;-) Presqu'autant qu'ujn eval () ;-)
J_G => Non. Lol.
pcman => fais renvoyer un tableau contenant les indices, par ta fonction. Puis tu parcours ce tableau pour réafficher la valeur, voilà tout.