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] Valeur unique dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2003
    Messages : 89
    Points : 47
    Points
    47
    Par défaut [Tableaux] Valeur unique dans un tableau
    Bonjour,
    J'ai un tableau et j'aurais souhaité supprimer les valeurs en doublons.

    La structure du tableau est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Array
            (
                [0] => Array
                    (
                        [idVille] => 19094
                        [distance] => 1
                        [label] => Les Essarts Le Roi
                        [latitude] => 0.85026624
                        [longitude] => 0.03316126
                        [proximite] => 0.84294291171525
                    )
     
                [1] => Array
                    (
                        [idVille] => 32268
                        [distance] => 1
                        [label] => St Hubert Le Roi
                        [latitude] => 0.85026624
                        [longitude] => 0.03316126
                        [proximite] => 0.84294291171525
                    )
     
                [2] => Array
                    (
                        [idVille] => 34152
                        [distance] => 1
                        [label] => St Remy L Honore
                        [latitude] => 0.85026624
                        [longitude] => 0.03316126
                        [proximite] => 0.84294291171525
                    )
     
                [3] => Array
                    (
                        [idVille] => 19094
                        [distance] => 1
                        [label] => Les Essarts Le Roi
                        [latitude] => 0.85026624
                        [longitude] => 0.03316126
                        [proximite] => 1.0833182178798
                    )
     
                [4] => Array
                    (
                        [idVille] => 32268
                        [distance] => 1
                        [label] => St Hubert Le Roi
                        [latitude] => 0.85026624
                        [longitude] => 0.03316126
                        [proximite] => 1.0833182178798
                    )
            )
    Comme vous pouvez le voir il y a des informations en double.
    La clé "idVille" est cité plusieurs fois mais quelques fois avec une clé "proximite" différente.
    J'aurais voulu supprimer les doublons dont l'idVille est identique.
    J'ai essayé array_unique() mais cette fonction ne m'affiche plus que le premier résultat

    Merci d'avance

  2. #2
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Le mieux est de consulter le manuel PHP sur les tableaux

    http://fr.php.net/array

    Maiq tu l'obtiens comment ce tableau ?
    Si il vient d'une base de données, tu peux faire le tri en amont avec un GROUP BY ou un DISTINCT....

    Sinon tu parcoures le tableau et tu en recrée un autre en vérifiant les éléments

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  3. #3
    Membre actif

    Inscrit en
    Août 2002
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2002
    Messages : 302
    Points : 285
    Points
    285
    Par défaut
    bonjour ,
    tu peux lors de la création du tableau développer un script qui vérifie si la nouvelle structure à insérer existe déja ou pas.
    je pense que c'est assez simple a faire
    Peace

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    array_unique est ton ami

  5. #5
    Membre du Club
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2003
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    Array_unique ne fontionne pas.
    En effet il m'enlève tout sauf le premier résultat.

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    C'est normal maintenant que tu me dis ça puisqu'il doit renvoyer la valeur 'Array'.
    Ce que tu peux faire c'est créé un 2° tableau où tu affectes concatènes tes valeurs un truc de ce style quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array (
      [0] => '19094|1|Les Essarts Le Roi| 0.85026624|0.03316126|0.84294291171525',
      [1] => '32268|1|St Hubert Le Roi|0.85026624|0.03316126|0.84294291171525',
       [2] ...
    , tu utilises array_unique sur ce tableau, tu récupères les indices que te renvoit array_unique et le tour est joué. Sinon si tu as un discriminant, tu tri lors de ta requête SQL (ce qui bien plus simple tout de même).

  7. #7
    Membre du Club
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2003
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    Merci pour toutes vos réponses. En fait j'ai fait par un autre moyen, j'ai ajouté les valeurs idVille dans un tableau et si la valeur n'est pas présente dedans on l'ajoute au tableau finale, sinon on passe au suivant.

    Encore merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/06/2009, 21h32
  2. Réponses: 9
    Dernier message: 14/05/2009, 13h35
  3. Réponses: 6
    Dernier message: 31/08/2007, 00h15
  4. [Tableaux] probleme unserialize dans un tableau(list)
    Par urikawa dans le forum Langage
    Réponses: 2
    Dernier message: 19/06/2006, 11h29
  5. 2 valeurs distincts dans un tableau à 2 dimensions...
    Par toyyo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/08/2005, 16h00

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