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] tri de tableau [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut [Tableaux] tri de tableau
    Bonjour,

    j'ai un tableau de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tab['toto']=(a,b,c,d,e,f)
    $tab['titi']=(c,d,e,f,g,h)
    $tab['test']=(j,k,d)
    ...
    je voudrais récupérer dans un autre tableau les valeurs du tableau précedent mais elle doivent apparaitre une seule fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab_2[1]=(a,b,c,d,e,f,g,h,j,k...)
    Pouvez vous me donner une méthode pour faire le tri

    merci

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    est t'il possible d'avoir plusieurs valeur pour un seul clé ? car la façon dont est fait mon tableau si dessus ne convient pas.
    en fait c'est une chaine de caractère qui est entré pour la clé.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ben donne vraiment la structure du tableau car on peut pas deviner...

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    un tableau avec une chaine comme clé s'appel un tableau associatif.
    tu peux mettre plusieurs valeurs pour une seule clé, ca s'appel un tableau a plusieurs dimensions !!
    il te sufit de mettre un tableau (associatif ou non) comme valeur pour ta clé

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    pour l'instant j'ai ceci

    $tab[clé1]='chaine de caractére'
    $tab[clé2]='chaine de caractére2'

    avec chaine de caractère qui est egal à a,b,c,d,e,f
    avec chaine de caractère qui est egal à a,b,e,f

    et le but est de recupérer une seule fois les valeur a, b etc...
    dans un autre tableau en comparant $tab[clé1] et $tab[clé2]

    alors peut être quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab[clé1]=array('a','b','c',etc...)
    mais je ne voit pas comment le faire dans ma boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(...)
       je recup la clé
       for(...)
          $tab[clé1]= les différentes valeurs
       }
    }

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    essaye un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $final = array();
    foreach($tab as $t) {
       $final = array_merge($final, $t);
    }
    var_dump($final);

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    ça marche pas, c'est moi qui ne fait pas bien mon tableau au départ

    comment faire pour
    faire ce que dit siddh

    tu peux mettre plusieurs valeurs pour une seule clé, ca s'appel un tableau a plusieurs dimensions

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $tab = array();
    $tab['toto']= array('a','b','c','d','e','f');
    $tab['titi']= array('c','d','e','f','g','h');
     
    $final = array();
    foreach($tab as $t) {
       $final = array_merge($final, $t);
    }
    var_dump($final); 
    ?>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    j'ai fait ceci, je pense que c'est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(...)
        $cle='toto';  //puis titi etc...
        for(...)
            $tab_tmp['$i']=$i;  //$i prend successivement a puis b puis c etc...
        }
        tab['toto']=$tab_tmp;
    }
    j'ai bien maintenant
    tab['toto']['a']=a
    tab['toto']['b']=b
    tab['toto']['c']=c
    tab['toto']['d']=d

    tab['titi']['a']=a
    tab['titi']['e']=e
    tab['titi']['f']=f
    tab['titi']['g']=g

    tab['tutu']['a']=a
    tab['tutu']['b']=b
    tab['tutu']['c']=c
    tab['tutu']['k']=k

    il me reste le merge maintenant pour avoir
    $final('a','b','c','d','e','f','g','k')

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Tu as essayé ce que je t'ai proposé ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    je ne voix pas comment faire
    $tab['toto']= array('a','b','c','d','e','f');
    sachant que a b c d e f correspond au valeur resultant d'une requete en bdd donc dans un while (à la place du for ci dessus)

    je ne peut pas faire dans ma boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tab['toto']= array('a');
    puis
    $tab['toto']= array('b');
    etc
    ???

  13. #13
    Membre actif Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Points : 216
    Points
    216
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cmp = 0;
    while ... {
     
    $tab['toto'][cmp] = $resultat[0];
    $cmp ++;
    }
    un truc comme ça ??

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    avec ce que j'ai ci dessus, j'ai fait un merge de cette façon :

    $final = array();
    foreach($tab as $tab_tmp => $tmp) {
    $final = array_merge($final, $tmp);
    }



    est ça fonctionne.

    Maintenant, à savoir si je peut faire plus simple ??

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par hunter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cmp = 0;
    while ... {
     
    $tab['toto'][cmp] = $resultat[0];
    $cmp ++;
    }
    un truc comme ça ??

    oui c'est ce que j'ai fait sauf que j'ai mis la meme chose pour la cle et la valeur

  16. #16
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    oui je pense que tu peux faire plus simple en utilisant, comme Mr N te l'a suggere la fonction array_merge().

  17. #17
    Membre actif Avatar de hunter
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 208
    Points : 216
    Points
    216
    Par défaut
    bas c'est ce qui fait

    Citation Envoyé par rdams
    avec ce que j'ai ci dessus, j'ai fait un merge de cette façon :

    $final = array();
    foreach($tab as $tab_tmp => $tmp) {
    $final = array_merge($final, $tmp);
    }

  18. #18
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    mais alors je ne vois rien aujourd'hui pourtant on n'est pas lundi . DES VACANCES, Y'M'FAUT DES VACANCES

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pour ta boucle while de parcours de bd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while (....) {
       $tab[$ta_cle][] = $ta_chaine
    }
    plus simple que le compteur pour des clefs numériques

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut
    ok merci pour votre aide

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

Discussions similaires

  1. [Tableaux] Tri de tableau
    Par WagaSeb dans le forum Langage
    Réponses: 16
    Dernier message: 24/05/2007, 12h41
  2. [Tableaux] Tri de tableau
    Par winnie82 dans le forum Langage
    Réponses: 8
    Dernier message: 25/07/2006, 10h32
  3. [Tableaux] Tri de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 34
    Dernier message: 14/04/2006, 10h37
  4. [Tableaux] Tri de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 16
    Dernier message: 27/02/2006, 15h32
  5. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 14h27

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