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] précisions sur array_unique


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 56
    Points
    56
    Par défaut [Tableaux] précisions sur array_unique
    Bonjour à tous.

    J'aurais voulu avoir une petite précision sur la fonction array_unique en php. ^^

    J'ai des produits qui sont de plusieurs types différents ex :

    produit1 = Coussins;
    produit2 = Tableaux;
    produit3 = Coussins;
    produit4 = Kakemonos;

    etc...

    Je souhaite afficher dans une liste les différents types de produits sans doublons, voici donc comment j'ai procédé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $test = array();
    while ($donnees = mysql_fetch_array($reponse) ){
    array_push($test, $donnees['typeProduit']);
    }
    $maListe = array_unique($test);
    ?>
    Tout marche impec sauf que le array_unique me laisse des trous ? (dites moi si je me trompe ^^)

    ex :

    test[0] = "Coussins";
    test[1] = "Tableaux";
    test[2] = "";
    test[3] = "Kakemonos";

    Donc pour feinter, pour afficher ma liste, j'ai écris le code ci-dessous : (qui marche très bien...) mais bon je pense qu'il y a moyen d'éviter cela...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ul>
    <?php
    	for ($i=0; $i<=count($maListe); $i++){
    		if ($maListe[$i] != ''){
    ?>
    	<li><?php echo $maListe[$i]; ?></li>
    <?php
    	}
    	}
    ?>
    </ul>
    Voili voilou ^^ Si vous avez une idée à me donner !
    Merci et @+

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Comme on peut le lire dans la doc de fr.php.net/array_unique :
    Prend le tableau array et retourne un nouveau tableau, complètement dédoublonné.
    Notez que les clés sont préservées.
    Je pense que c'est plutot la facon dont tu créé ton tableau qui serait a revoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($donnees = mysql_fetch_array($reponse) ){
        if(!in_array($donnees['typeProduit'], $test))
            array_push($test, $donnees['typeProduit']);
    }

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 56
    Points
    56
    Par défaut
    Coucou !

    Merci de ta réponse rapide !

    En effet, j'ai lu la doc en Anglais, c'est peut-etre pour ça que je n'ai pas tilté sur le fait que les clef étaient préservés hehe..

    Ok je vois le truc, inArray permet donc de savoir si un élément éxiste déjà dans un tableau, cool !

    Merci et @ + !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Pour mieux comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    $test=array('Coussin','matelas','Coussin','jetste');
    $maliste = array_unique($test);
    foreach($maliste as $num=>$value)
    {echo $num.'='.$value.'<br>';}
    ?>

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

Discussions similaires

  1. Précision sur les tableaux
    Par chicabonux dans le forum Débuter
    Réponses: 2
    Dernier message: 25/08/2009, 15h03
  2. Précision sur Oracle 9iAS r2
    Par Patmane dans le forum Oracle
    Réponses: 9
    Dernier message: 18/03/2007, 04h41
  3. Précisions sur Import/export
    Par electro dans le forum Import/Export
    Réponses: 9
    Dernier message: 15/10/2004, 13h34
  4. [Observateur] Précisions sur le design pattern Observer [UML]
    Par joquetino dans le forum Design Patterns
    Réponses: 2
    Dernier message: 07/10/2004, 22h35
  5. Précision sur les sauvegarde à chaud
    Par alxkid dans le forum Administration
    Réponses: 2
    Dernier message: 09/08/2004, 18h55

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