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] Récupérer éléments unique dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Points : 48
    Points
    48
    Par défaut [Tableaux] Récupérer éléments unique dans un tableau
    Bonjour,
    J'ai besoin de votre aide .
    Dans mon site, j'ai une barre de recherche qui me permet de rechercher des médias (jusque là ca va). Pour rechercher les média je peux soit entrer le titre du média soit des tags.
    Voici un morceau de ma liste de média :
    média "toto" (1) ----> tag :toto,tag1,tag2
    média "toto" (2) ----> tag:tag3,tag5
    média "test" ----> tag:toto,tag8

    Mon problème est lorsque je fais une recherche en tapant "toto" dans ma barre de recherche je vais avoir comme résultat tout les média s'appelant "toto" et tout ceux comportant "toto" dans leur tags. Finalement je vais avoir un résultat comme ceci :
    "toto" (1)
    "toto" (2)
    "toto" (1)
    "test"

    Le résultat que je récupère comporte deux fois le média "toto" (1).
    Le résultat est stocké dans un tableau donc je voudrai savoir s'il existe une fonction ou une astuce pour récupéré tout les éléments unique de mon tableau de résultat.

    Merci d'avance

  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
    salut les données sont stockées dans une bdd?

    si oui utilise le distinct sql

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Oui les données sont enregistrées dans une base de données SQL. Mais je n'est pas mes médias en double dans ma base de données je les ai juste en double lors que je fait ma recherche dans mes différentes tables dans le but de récupérer les médias où le tag et le titre correspond a la recherche.
    Le traitement est donc à mon avis à faire dans mon tableau que je construis grâce au différents résultats des requêtes que je réalise. C'est pour cela que je souhaiterai supprimer les éléments communs dans mon tableau.

  4. #4
    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
    je pense que tu peux le faire en amont au moment du sql peux tu me montrer les requetes ;-)

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Je ne pense pas car dans un premier temps je vais récupérer les médias dont le titre correspond à ma recherche. Je stocke ce résultat dans un tableau.
    Ensuite je vais récupérer dans ma table de tag les médias où le tag correspond à ma recherche. Je stocke ce résultat à la suite de mon tableau.
    Finalement dans mon tableau j'ai des éléments qui se répètent.
    Vois tu ce que je veux dire?

  6. #6
    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
    oui je vois très bien ... Mon idée récupération de tous les médias dans une seule requête et utilisation du distinct pour éviter les doublons

    je pense que c'est possible ds ton cas et évite du traitement derrière après c'est une suggestion sans code je peux pas te le montrer sinon pour enlever les doublons d'un tableau en php:

    http://fr3.php.net/manual/en/function.array-unique.php

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    C'est une bonne idée d'utiliser la fonction array_unique() mais le problème et qu'à l'endroit où le doublon a été supprimé il me laisse un trou dans l'index.
    As tu une solution pour remédier au trou dans l'index?
    Merci

  8. #8
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $input = array("green", "red", "blue", "green", "red","blue" ,"yellow");
    print_r(array_keys(array_flip($input)));
    mode barbare peut être il y'a mieux

    ps: pense à l'option sql quand meme

    une autre méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $input = array("green", "red", "blue", "green", "red","blue" ,"yellow");
    print_r(array_slice(array_unique($input),0));

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Je plussoie fortement boo64 pour une solution tout SQL

    A propos des trous dans l'index : s'ils sont vraiment gênants tu peux utiliser array_merge( ) pour réindexer le tableau.

  10. #10
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Merci je pense que je devrai y arriver avec tout ce que vous m'avez donné.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/06/2009, 21h32
  2. Réponses: 7
    Dernier message: 11/01/2007, 18h54
  3. [Tableaux] Valeur unique dans un tableau
    Par glsn dans le forum Langage
    Réponses: 6
    Dernier message: 06/12/2006, 11h18
  4. Réponses: 6
    Dernier message: 27/09/2006, 20h27
  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