IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] plusieurs clés identiques dans un array()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut [Tableaux] plusieurs clés identiques dans un array()
    Bonjour à tous,
    J'ai contruit l'array suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $variable = array('zero' => 'le nombre est zero',
                    'un' => 'le nombre est un',
                    'deux' => 'le nombre est deux',
                    'deux' => 'encore un deux'
                );
    Mais à l'affichage du contenu de mon tableau, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'le nombre est zero' 'le nombre est un' 'encore un deux'
    Je suppose c'est la dernière valeur correspondant à la clé qui est récupérée.
    Je recherche donc un type de variable autre que l'array ou son utilisation me permettant d'avoir plusieurs clés identiques dans un tableau de tel sorte qu'en affichant les differentes valeurs de mon tableau ci dessus que je puisse avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'le nombre est zero' 'le nombre est un' 'le nombre est deux' 'encore un deux'
    Avez vous des solutions svp ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    me permettant d'avoir plusieurs clés identiques
    une clé a justement pour but d'être unique...

    Une solution serait d'associer a ta clé "deux" un nouveau tableau contenant 'le nombre est deux' & 'encore un deux'
    Stay in Bed .. Save Energy

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    oui j'ai penser à faire un autre tableau mais ca ne correspond pas à ce que je veux réellement car je veux faire un affichage sous forme de tag cad pour mon exemple, un resultat de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <zero>le nombre est  zero<zero>
    <un>le nombre est  un</un>
    <deux>le nombre est deux</deux>
    <deux>encore un deux</deux>
    alors qu'en créant un autre tableau, j'aurai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $tabAux= array(
    			'a' => 'le nombre est deux',
    			'b' => 'encore un deux'		
    			);
     
     
    $variable = array('zero' => 'le nombre est zero',
                    'un' => 'le nombre est un',
                    'deux' => $tabAux
     
                );
    qui donnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <zero>le nombre est zero<zero>
    <un>le nombre est un</un>
    <deux>
    <a>le nombre est deux</a>
    <b>encore un deux</b>
    </deux>
    COmment faire pour avoir le premier résultat ?

  4. #4
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Tu fais tout en deux dimensions.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    peux tu etre plus explicite stp ? je ne vois pas comment faire car ce ne sont pas toutes les clés qui contiennent un tableau.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Faut que t'utilise la solution de |PaRa-BoL, tu crée un tableau à 2 dimensions, et tu met ta clé en valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = (array ('zero','un','deux'), array ('le nombre est zero','le nombre est un',$tabAux)
    Ou en inversant les dimensions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = (array ('zero','le nombre est zero'), array ('un','le nombre est un', array ('deux',$tabAux))
    La première solution est mieu adapté à mon avis, mais ca dépend de ce que tu veux faire
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    j'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $variable = (array ('zero','le nombre est zero'), array ('un','le nombre est un'), array ('deux','le nombre est deux'), array ('deux','encore un deux'));
    et ça me retourne l'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in c:\program files\easyphp1-8\www\ea\test.php on line 1
    Je crois qu'il n'aime pas le fait de mettre plusieurs array comme c'est le cas pour la variable $variable

  8. #8
    Membre averti Avatar de sourivore
    Homme Profil pro
    Lead Tech Front-End
    Inscrit en
    Juin 2005
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Points : 334
    Points
    334
    Par défaut
    Je ne vois pas vraiment l'intérêt.
    Comment vas-tu distinguer la valeur du premier deux et celle du deuxième deux?
    Qu'est censé retourner $variable["deux"]?
    Et du coup comment vas-tu récupérer l'autre?

    Je pense que la solution n'est pas dans le code mais plutot dans la logique que tu veux donner à tes tableaux.

    Peux-tu nous dire ce que tu veux exactement faire avec ce tableau?
    Toi aussi, crée ton armée de soldat de plomb :
    http://souris-bleues.minitroopers.fr/

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Personnellement, je ferais dans le simplissime :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $variable[] = array('key'=>'zero', 'value' => 'le nombre est zero');
    $variable[] = array('key'=>'un', 'value' => 'le nombre est un');
    $variable[] = array('key'=>'deux', 'value' => 'le nombre est deux');
    $variable[] = array('key'=>'deux', 'value' => 'encore un deux');
    Et puis ensuite un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($variable as $tuple) {
       echo $tuple['key'];
       echo $tuple['value'];
    }
    Code non testé, il s'agit juste d'une piste
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Autant pour moi j'avais oublié de mettre le premier array, d'ou le parse error, ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = array (array ('zero','le nombre est zero'), array ('un','le nombre est un'), array ('deux','le nombre est deux'), array ('deux','encore un deux'));
    Ou la forme de jml94 mais sans les clés qui sont identiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $variable[] = array('zero', 'le nombre est zero');
    $variable[] = array('un', 'le nombre est un');
    $variable[] = array('deux', 'le nombre est deux');
    $variable[] = array('deux', 'encore un deux');
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  11. #11
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    Comme je l'ai dit plus haut, l'interêt est de pouvoir générer un fichier xml dont les tags seraient les clés de mon tableau et le contenu dechaque tag, la valeur associée à la clé. Je pourrais donc avoir une succession de tags identiques. ce que je n'ai pas en utilisant le tableau vu que c'est la dernière valeur des clés identique qui est recupéré et par conséquent, je n'ai qu'un tag ici <deux>.
    J'espère que j'ai été plus clair.

  12. #12
    Membre averti Avatar de sourivore
    Homme Profil pro
    Lead Tech Front-End
    Inscrit en
    Juin 2005
    Messages
    451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Tech Front-End

    Informations forums :
    Inscription : Juin 2005
    Messages : 451
    Points : 334
    Points
    334
    Par défaut
    Ok et dsl je n'ai pas fait attention à ce que tu avais dit.

    Je crois que ton problème est résolu mais personnellement, je n'aime pas trop l'utilisation de ces clés qui ne sont pas uniques dans un tableau qui est justement fait pour ça.

    J'aurais plutôt vu un tableau du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array("zero$$ceci est un zéro","un$$ceci est un un","deux$$ceci est un deux","deux$$encore un deux")
    Toi aussi, crée ton armée de soldat de plomb :
    http://souris-bleues.minitroopers.fr/

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Ca apporte rien ta solution sourivore, je comprend pas trop ce qui te gène dans le tableau à 2 dimensions.

    Les clés sont devenu numérique, donc unique.

    PS:tu mange des souris ? lol
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  14. #14
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Points : 60
    Points
    60
    Par défaut
    effectivement la solution de eric93 résout mon problème.
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Manipulation de données dans un Array
    Par arnaudperfect dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2009, 16h35
  2. [Tableaux] Insertion de variable dans un array
    Par Lenorah dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2008, 12h32
  3. [Tableaux] Gestion d'évènements dans un array
    Par Mat_DZ dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 17h13
  4. [Tableaux] placement du pointeur dans un array??
    Par karlitos dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2006, 08h38
  5. [Tableaux] Problème PHP - Recherche dans un Array
    Par daniel_gre dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2006, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo