[Résolu] Supprimer les doublons dans un array ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 996
Inscription: Sam Juin 04, 2005 12:53

[Résolu] Supprimer les doublons dans un array ?

Message le Ven Juil 11, 2008 23:20

Bonsoir !
J'ai essayé toute l'après-midi de trouver une solution à ce problème, mais walou ! :cry:

Je vous explique !
Avec une boucle je génère des tableaux (Depuis la BDD ...). Un exemple :
Code: Tout sélectionner
Array
(
    [0] => Array
        (
            [ID] => 2
            [branch_name] => Science Math
            [branch_description] => Science Math
            [branch_levels] => 2 3

        )

    [1] => Array
        (
            [ID] => 3
            [branch_name] => Science Exp
            [branch_description] => Science Exp
            [branch_levels] => 2 3 5

        )

    [2] => Array
        (
            [ID] => 4
            [branch_name] => Economie
            [branch_description] => Economie
            [branch_levels] => 2
            [branch_01] =>
            [branch_02] =>
        )

)

Array
(
    [0] => Array
        (
            [ID] => 2
            [branch_name] => Science Math
            [branch_description] => Science Math
            [branch_levels] => 2 3

        )

    [1] => Array
        (
            [ID] => 3
            [branch_name] => Science Exp
            [branch_description] => Science Exp

        )

)

En utilisant la fonction array_merge, j'ai pu obtenir le résultat suivant (parce que j'ai besoin d'avoir un seul array) :
Code: Tout sélectionner
Array
(
    [0] => Array
        (
            [ID] => 2
            [branch_name] => Science Math
            [branch_description] => Science Math
            [branch_levels] => 2 3
        )

    [1] => Array
        (
            [ID] => 3
            [branch_name] => Science Exp
            [branch_description] => Science Exp
            [branch_levels] => 2 3 5
        )

    [2] => Array
        (
            [ID] => 4
            [branch_name] => Economie
            [branch_description] => Economie
            [branch_levels] => 2
        )

    [3] => Array
        (
            [ID] => 2
            [branch_name] => Science Math
            [branch_description] => Science Math
            [branch_levels] => 2 3
        )

    [4] => Array
        (
            [ID] => 3
            [branch_name] => Science Exp
            [branch_description] => Science Exp
            [branch_levels] => 2 3 5
        )

)


Le problème c'est qu'il y'a des doublons dans cet array, qu'il faudra supprimer ! Mais quand j'utilise la fonction array_unique elle ne me laisse qu'une seule entré vu que mon array comporte d'autres array qui semble identiques.
Moi je cherche a supprimé les array identiques dans cet array !

Mais comment faire ?

Merci de votre aide !

Adam
Dernière édition par amazigh25 le Sam Juil 12, 2008 0:02, édité 2 fois.


crocxx
WRInaute discret
WRInaute discret
 
Messages: 91
Inscription: Mer Sep 01, 2004 11:56

Message le Ven Juil 11, 2008 23:34

Pourquoi ne pas récupéré que les valeurs sans doublons dans la base de donnée directement avec un DISTINCT par exemple.

C'est plus simple et beaucoup plus optimisé.


kalex
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 241
Inscription: Mar Sep 14, 2004 16:13

Message le Ven Juil 11, 2008 23:49

Oui, c'est généralement le genre de souci que l'on évite d'avoir.

Mais si vraiment tu ne peux pas faire autrement, à ta place, je pense que je ferais une boucle qui copierait le contenu de ce tableau dans un nouveau tableau en me servant des clés pour savoir si c'est un doublon.
Du genre (je gribouille rapide, il faut adapter) :

Code: Tout sélectionner
$new_array = array();
foreach($array as $elem){
  $key = md5($elem['ID'].$elem['branch_name'].$elem['branch_description']);
  if(!isset($new_array[$key] ))
    $new_array[$key] = $elem;
}

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 996
Inscription: Sam Juin 04, 2005 12:53

Message le Sam Juil 12, 2008 0:01

Salut !
Merci pour votre réponse.
La proposition de crocxx, m'a poussée à revoir la manière dont je récupère les données.
Maintenant je ne t'utilise la boucle que pour générer le texte de la requête que j'exécute par la suite ! J'ai même pas eu besoin de DISTINCT, ça s'est fait tout seul !! :)

Merci ;)

Youpi ! :D

ADam


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités