begin process at 2012 05 31 00:55:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Divers

 > 

Gestion d'indices de tableaux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gestion d'indices de tableaux

mercredi 28 décembre 2005 à 12:37:29 | Gestion d'indices de tableaux

pcmanprogrammeur

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.
mercredi 28 décembre 2005 à 12:56:57 | Re : Gestion d'indices de tableaux

J_G

Réponse acceptée !
Salut,


Tu fais des tableau en 2D. Donc il faudrait indexer le tableau avec deux indices... (et non un seul !)

mais tu peux te débrouiller ainsi :
<?php

$Liste1[0]= Array(132,1);
$Liste1[1]= Array(516,1);
$Liste1[2]= Array(891,1);
$indice = "[0][0]";
eval("echo \$Liste1$indice;");

?>

Par contre, je trouve que ce que tu fais n'est pas très... propre.


A+ et beaux nénés
mercredi 28 décembre 2005 à 12:57:00 | Re : Gestion d'indices de tableaux

malalam

Administrateur CodeS-SourceS
Salut,

Je ne pige pas ce que tu veux faire.

Je te propose plusieurs solutions :

$indice = '0,0'; // par exemple hein
$tmp = explode (',', $indice);
echo $Liste1[$tmp[0]][$tmp[1]];

$indice1 = '0';
$indice2 = '0';
echo $Liste1[$indice1][$indice2];

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





 

mercredi 28 décembre 2005 à 12:57:52 | Re : Gestion d'indices de tableaux

malalam

Administrateur CodeS-SourceS
J'avais pas pensé au eval () tien :-)
mercredi 28 décembre 2005 à 13:03:50 | Re : Gestion d'indices de tableaux

J_G

T'avais pas pensé à eval... Ben c'est pas un mal ;)
Ce eval est une source d'emmerdes. In-debuggable !!

Franchement, je trouve tes solutions beaucoup plus acceptables surtout :
$indices = array (0, 0);
echo $Liste1[$indices[0]][$indices[1]];


mercredi 28 décembre 2005 à 13:11:08 | Re : Gestion d'indices de tableaux

coucou747

Administrateur CodeS-SourceS
Salut,

Mais pourquoi vous vous obtinnez à mettre des guillemets ????

$liste=array();
$Liste1[0]= Array(132,1);
$Liste1[1]= Array(516,1);
$Liste1[2]= Array(891,1);

peut être remaplcé par :

$liste=array();
$Liste1[]= Array(132,1);
$Liste1[]= Array(516,1);
$Liste1[]= Array(891,1);

ou encore :


$liste=array(
array(132,1),
array(516,1),
array(891,1));


echo $Liste1[0][0];

ICI ON MET DES INT !!!! pas des strings !!!

$indice1=0;
$indice2=0;

ou echo $Liste1[$indice1][$indice2];



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
mercredi 28 décembre 2005 à 13:18:16 | Re : Gestion d'indices de tableaux

Anthomicro

Yep c'est beaucoup mieux :-)


    mercredi 28 décembre 2005 à 13:26:40 | Re : Gestion d'indices de tableaux

    coucou747

    Administrateur CodeS-SourceS
    Salut,

    Je vais lancer un site :

    http://www.codes-php-comme-un-porc.com

    et j'y mettrais tout les codes qu'on trouve sur le forum et qui sont dégeu...

    In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

    Mon site (articles sur la programmation et programmes)
    mercredi 28 décembre 2005 à 14:00:49 | Re : Gestion d'indices de tableaux

    pcmanprogrammeur

    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
    mercredi 28 décembre 2005 à 14:09:54 | Re : Gestion d'indices de tableaux

    malalam

    Administrateur CodeS-SourceS
    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.

    1 2 3 4

    Cette discussion est classée dans : gestion, array, indice, liste1, indices


    Répondre à ce message

    Sujets en rapport avec ce message

    probleme array tableau [ par guiguipumpkin ] bonjour,je ne trouve pas la fonction php qui permet de supprimer un element d'un tableau array, suivant un indice iun peu comme array_shift mais en po Gestion d'erreur dans un formulaire [ par pihouit ] Bonjour,Voici le code que j'utilise pour vérifier ma variable :if($ceciestlepseudo==""){echo "Vous devez choisir un pseudo<a mysql_fetch_array !!!! pls [ par ksinteractive ] j'ai un while ($row=@mysql_fetch_array($result)) {echo (" $row[3]jusqu'a la tout va bien mon $row[3] a 4 lignes je les affichechiffre1<br Tableau (array) (pour les pros du PHP) [ par jockos ] Bonjour,J'ai 2 questions très techniques auxquel je n'ai trouvé AUCUNE réponse sur les nombreux sites et manuels PHP.Est-ce que les élements d'un tabl Tableau array etc... [ par Cestmoi ] J'affiche des données de la facon suivante :foreach($server->rules as $key => $value) { echo $key." = ".$value.""; } Charger un array depuis mysql [ par mdog ] bonjour, je cherche a charger depuis mysql un tableau array pour pouvoir l'integrer dans une page, seulement je ne sais pas coment faire, avec ma syta MYSQL et ARRAY [ par mdog ] je repose ma question différement cela vient peut-etre de la façon de poser la question, ou bien c'est simplement que le post est trop bas maintenant tableau associatif [ par tobleronne ] Bonjour,Je souhaite renseigner un tableau a plusieurs dimensions mais rien n'y fait ?!?J'ai une boucle qui alimenterais un tableau du style : $monTabl obstart, flush et gestion du buffer [ par sbertrand ] Bonjour, j'ai un traitement long qui est effectué, et j'aimerai affiché au fur et a mesure l'execution du programme. D'apres la doc j'ai ecrit le code AAAAAAAA mysql_fetch_array ca marche comment? [ par Tiriel ] Lorsque j'execute ce script: (Pas besoin de preciser que je suis débutant vu le script ) include("ID.htaccess\sql.php"); $connect=mysq


    Nos sponsors


    Sondage...

    Comparez les prix

    CalendriCode

    Mai 2012
    LMMJVSD
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   

    Consulter la suite du CalendriCode

    Photothèque

    A découvrir



     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 0,718 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales