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] inverser clé / valeurs d'un tableau


Sujet :

Langage PHP

  1. #1
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut [Tableaux] inverser clé / valeurs d'un tableau
    Bonjours,

    Je cherche comment inverser clé/valeurs d'un tableau de cette forme ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array {
         [nom] => 'clyne'
         [prenom] => 'lacus'
    }
    Sans utiliser la fonction array_flip().

    Celle ci me sort une erreur Can only flip STRING and INTEGER values!. Donc il faut que je trouve une autre méthode.

    Si on ne tient pas compte de cette erreur ça marche mais j'ai pas envie de foutre un @ devant la fonction

  2. #2
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach ($tab as $cle => $valeur){
      $tab_bis[$valeur] = $cle;}

  3. #3
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    marche pas

  4. #4
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Salut,

    Je viens de tester et ça marche.
    Pourrais-tu nous donner un peu de code !
    Le fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    $tab = array('un' => '1', 'deu' => '2', 'trois' => 'quatre');
    foreach ($tab as $cle => $valeur){
      $tab_bis[$valeur] = $cle;}
    echo 'le tableau de départ<br>';
    echo '<pre>';
    print_r($tab);
    echo '</pre>';
    echo '<br>le tableau d\'arrivée<br>';
    echo '<pre>';
    print_r($tab_bis);
    echo '</pre>';
    ?>
    Le code html résultant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    le tableau de départ<br><pre>Array
    (
        [un] => 1
        [deu] => 2
        [trois] => quatre
    )
    </pre><br>le tableau d'arrivée<br><pre>Array
    (
        [1] => un
        [2] => deu
        [quatre] => trois
    )
    </pre>

  5. #5
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Les clés d'un tableau devant être uniques, si tu as deux valeurs identiques tu ne peux inverser les paires clés/valeurs... Est-ce que cela réponds à ta question ?

  6. #6
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Citation Envoyé par omura
    Je cherche comment inverser clé/valeurs d'un tableau de cette forme ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array {
         [nom] => 'clyne'
         [prenom] => 'lacus'
    }
    Sans utiliser la fonction array_flip().

    Celle ci me sort une erreur Can only flip STRING and INTEGER values!. Donc il faut que je trouve une autre méthode.
    ... t'as mis quoi dans ton tableau pour recuperer une erreur comme ca ??

    array_flip fonctionne tres bien, et a moins de s'amuser a mettre des ressources ou des objets a l'interieur des valeurs du tableau, y a pas de raison que ca fonctionne pas... donc a mon avis tu devrais "nettoyer" ton tableau pour que array_flip fonctionne.

    Un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    var_dump($tableau);
    echo "</pre>";
    t'affichera exactement ce que contient ton tableau avec les types associés

    A noter aussi que les clés d'un tableau doivent etre entre apostrophes !!!!

  7. #7
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Citation Envoyé par Fladnag
    array_flip fonctionne tres bien, et a moins de s'amuser a mettre des ressources ou des objets a l'interieur des valeurs du tableau, y a pas de raison que ca fonctionne pas...
    Bienvu lol ^^

    J'ai en théorie du texte mais il m'arrive d'avoir un champ avec '<input type="texte" .../>' dedans.

    ==> papyphp
    Mon code est un peu plus complexe que ca ...

    Et il n'y a pas de fois la même clé ou la même valeurs dans mon tableau.

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Citation Envoyé par omura
    J'ai en théorie du texte mais il m'arrive d'avoir un champ avec '<input type="texte" .../>' dedans.
    C'est pas grave ca, c'est considéré comme une chaine de caractere. Ce qui est important c'est le type affiché par var_dump

    Pour les doublons, si il en existe, ca ne prendra que la derniere valeur, donc ca ne pose pas de probleme a array_flip, il gère ;o)

  9. #9
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    je vient de voir j'ai des champ booleen aussi

    ya quelque champ qui ont la valeur FALSE

    avec un print_r() ca donne ca

  10. #10
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    c'est pour ca que j'ai dis var_dump() et pas print_r... var_dump affiche le TYPE des champs, ce qui est important ici.

    mais si tu as des booleen, ca ne fonctionnera pas en effet. Tu peux toujours transformer tes booleen en 0 (FALSE) et 1 (TRUE)

  11. #11
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    oauis je vient de le faire et ca à l'air de marcher lol

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/02/2006, 18h52
  2. [Tableaux] récuperer des valeurs d un tableau
    Par student007 dans le forum Langage
    Réponses: 7
    Dernier message: 11/02/2006, 22h27
  3. "inverser" les valeurs d'un tableau
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/12/2005, 12h13
  4. [Tableaux] Extraction de valeur dans un tableau
    Par pirouette_07 dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2005, 17h54
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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