[Reglé] Retirer les doublons d'un tableau PHP ?

Discussion dans 'Administration d'un site Web' créé par Genzo, 7 Juin 2005.

  1. Genzo
    Genzo WRInaute impliqué
    Inscrit:
    18 Juin 2004
    Messages:
    545
    J'aime reçus:
    0
    Bonjour,

    En PHP, j'ai un tableau du style :

    $tab[0] : google
    $tab[1] : Google
    $tab[2] : google
    $tab[3] : google
    $tab[4] : gooGle
    $tab[5] : Google
    $tab[6] : Google

    J'aimerai retirer de ce tableau tous les doublons, c'est à dire garder à chaque fois un seul exemplaire, en faisant attention à la casse (garder les différences de majuscules).
    Ainsi j'aimerai obtenir :

    $tab[0] : google
    $tab[1] : Google
    $tab[2] : gooGle

    Je vois pas et j'arrive pas à savoir comment on peut faire ça... si vous pouvez m'aider.

    Merci
     
  2. YvesB
    YvesB WRInaute occasionnel
    Inscrit:
    11 Janvier 2004
    Messages:
    422
    J'aime reçus:
    0
    tiens une fonction :
    Code:
    <?
    function ValeursUniques($tableau) {
    
      // On récupère les mêmes valeurs dans 1 seule case
      for ($i = 0, $n = count($tableau); $i < $n; $i++)
        $uTableau[$tableau[$i]] = 1;
    
      // On crée le nouveau tableau
      reset($uTableau);
      for ($i = 0, $n = count($uTableau); $i < $n; $i++) {
        $tUnique[] = key($uTableau);
        next($uTableau);
      }
      return $tUnique;
    }
    
    $tVals = Array(5, 3, 5, 1, 8, 3, 5, 1, 3, 2, 2, 9, 1);
    $tVals = ValeursUniques($tVals);
    
    for ($cpt=0; $cpt < count($tVals); $cpt++)
      echo $tVals[$cpt]." ";
    ?>
    Source www.phpinfo.net

    Sinon tu a la fonction array_unique().
    http://www.php.net/manual/fr/function.array-unique.php depuis php 4.0.1
     
  3. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 873
    J'aime reçus:
    0
    array array_unique ( array array) pour dédoublonner un tableau

    Note : Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique.

    voila! :D
     
  4. Genzo
    Genzo WRInaute impliqué
    Inscrit:
    18 Juin 2004
    Messages:
    545
    J'aime reçus:
    0
    Sympa pour vos réponse rapides.
    array_unique() fonctionne à merveille :)

    Merci !


    Reglé !
     
  5. unlu
    unlu WRInaute discret
    Inscrit:
    8 Mai 2005
    Messages:
    114
    J'aime reçus:
    0
    Si tu veux rester simple et bien on peut faire très simple :
    Tu pars du 1er élément de ton tableau et pour chacune des occurences suivantes de ton tableau tu les compares et si ce dernier est égale au premier et bien on lui affecte la chaine vide par exemple. Puis tu prens le deuxieme élément de ton tableau et tu le compare à toutes les occurences suivantes de ton tableau et si ce dernier est égale au deuxieme et bien on lui affecte la chaine vide aussi. Puis tu prens le troisieme etc... Jusqu'à l'avant dernier.

    Quand tu as finis, et bien dans ton tableau tu n'as plus de doublons puisque les doublons ont été remplacés par la chaine vide. Enfin pour finir tu copies tous les éléments du tableau tab qui ne sont pas la chaine vide dans le tableau tabSD (SD voulant dire Sans Doublon).
    Alors si on traduit cet algo en php voila ce que cela nous donne :
    On suppose que $Tab est ton tableau contenant toutes les chaines où tu souhaites virer les doublons. Voici le code :

    for($i=0;$i<count($tab)-1;$i++){
    for($j=$i+1;$j<count($tab);$j++){
    if($tab[$i]==$tab[$j])
    $tab[$j]="";
    }
    }

    // On crée le tableau tabSD le tableau sans doublon
    $j=0;
    for($i=0;$i<count($tab);$i++){
    if($tab[$i]!=""){
    $tabSD[$j++]=$tab[$i];
    }
    }

    Et c'est tout !!!
     
  6. Genzo
    Genzo WRInaute impliqué
    Inscrit:
    18 Juin 2004
    Messages:
    545
    J'aime reçus:
    0
    Unlu, ton algo se résume à ça : array_unique()

    $tab = array_unique( $tab );
     
Chargement...
Similar Threads - [Reglé] Retirer doublons Forum Date
[Réglé] Résultat de recherche indésirable dans la ligne verte Référencement international (langues, pays) 12 Février 2011
[reglé] Title, Meta et Includes Problèmes de référencement spécifiques à vos sites 11 Septembre 2009
[Réglé] Aide pour requete SQL Développement d'un site Web ou d'une appli mobile 30 Juillet 2009
[réglé][Url rewriting] Enlever les variables de sessions URL Rewriting et .htaccess 5 Mars 2009
[Réglé]Requette MySql avec date Développement d'un site Web ou d'une appli mobile 13 Février 2009
[Reglé] Mon serveur ne demarre plus :( Administration d'un site Web 12 Décembre 2008
[Réglé] Problème avec apostrophe dans la balise Title en PHP Développement d'un site Web ou d'une appli mobile 1 Décembre 2008
[réglé] Analyse du header avec une redirection permanente URL Rewriting et .htaccess 27 Novembre 2008
[Réglé] Aide sur Javascript Développement d'un site Web ou d'une appli mobile 27 Novembre 2008
[réglé] Url Rewriting et robots.txt Débuter en référencement 23 Novembre 2008
[reglé]Problème Undefined offset Développement d'un site Web ou d'une appli mobile 6 Novembre 2008
[Réglé] Exclure une URL d'une règle de réécriture URL Rewriting et .htaccess 4 Novembre 2008
[réglé]Reponse double dans une requête avec LEFT JOIN Développement d'un site Web ou d'une appli mobile 22 Octobre 2008
[réglé]Problème d'affichage en très haute résolution Développement d'un site Web ou d'une appli mobile 30 Août 2008
[réglé] url rewriting et apache 2 sur phpmy annu URL Rewriting et .htaccess 3 Juillet 2008
[Réglé]Recherche dans une BDD avec différent critère Développement d'un site Web ou d'une appli mobile 2 Juillet 2008
[réglé] Problème de css avec float Développement d'un site Web ou d'une appli mobile 28 Mai 2008
[reglé] Javascript : ajouter un lien sur une image Développement d'un site Web ou d'une appli mobile 27 Mai 2008
[Reglé] Afficher flux RSS en UTF-8 et ISO-8859-1 Développement d'un site Web ou d'une appli mobile 27 Mai 2008
[réglé] besoin d'aide sur création de sous domaine Développement d'un site Web ou d'une appli mobile 11 Mai 2008