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 :

array unique sur tableau 2 dimensions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut array unique sur tableau 2 dimensions
    Bonjour

    J'ai par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $t_temp[1]['a'] = "coucou";
    $t_temp[1]['b'] = "salut";
     
    $t_temp[2]['a'] = "coucou ça va?";
    $t_temp[2]['b'] = "salut ça va?";
     
    $t_temp[3]['a'] = "coucou";
    $t_temp[3]['b'] = "salut";
    Et bien j'aimerai faire un array_unique dessus pour n'obtenir plus que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $t_temp[1]['a'] = "coucou";
    $t_temp[1]['b'] = "salut";
     
    $t_temp[2]['a'] = "coucou ça va?";
    $t_temp[2]['b'] = "salut ça va?";
    C'est-à-dire qu'il dédoublonne les tableaux qui possède une valeur identique.

    Mais je n'arrive pas quand le tableau est a 2 dimensions comme içi.

    merci

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Dans la doc de array_unique :
    Note: Notez que array_unique() n'est pas conçu pour fonctionner avec des tableaux multidimensionnels.
    Après, je sais pas si il existe une autre fonction pour les tables multidimensionnels :/

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Ah mince je n'avais pas vu.

    Je ne suis pas sûr qu'il existe une fonction mais avec 2 boucles for imbriqué ça ne peut pas se faire?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Hello,

    La méthode la plus simple est de sérialiser les sous tableaux.

    Par ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tab1 = array_map( 'serialize' , $monTableau );
    $tab1 = array_unique( $tab1 );
    $monTableau = array_map( 'unserialize' , $tab1 );

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    merci mais je n'arrive pas à faire le lien avec ton exemple et ma situation

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    serialiser un tableau le transforme en une chaine de caractère (grosso modo). Le code de Petibidon transforme tous les sous-tableaux en chaines, applique array_unique sur ce tableau (ce qui est maintenant possible vu qu'il ne contient plus que des chaines), puis déserialise le tout pour récupérer les sous-tableaux.
    On pourrait l'écrire sous forme de fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function array_unique_recursive($tableau)
    {
    $tab1 = array_map( 'serialize' , $tableau);
    $tab1 = array_unique( $tab1 );
    $tableau= array_map( 'unserialize' , $tab1 );
    return $tableau;
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [XL-2010] Aide sur tableau 2 dimensions
    Par daddygraffiti dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/11/2013, 17h24
  2. image d'arrière plan unique sur tableau
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 06/07/2006, 09h57
  3. reference sur tableau N dimensions
    Par harsh dans le forum C++
    Réponses: 11
    Dernier message: 28/06/2006, 18h53
  4. Tri sur tableau à 2 dimensions
    Par Poussy-Puce dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/03/2006, 19h36

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