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] Comparer 2 tableaux multi-dimensionnels


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 47
    Par défaut [Tableaux] Comparer 2 tableaux multi-dimensionnels
    Bonjour à tous et à toutes,

    J'ai 2 tableaux tab1 et tab2 à comparer.
    J'aimerais trouver une solution performante car ces 2 tableaux peuvent avoir une taille importante.
    Je peux très bien créer une boucle imbriqué dans une autre boucle mais ça me paraît peu intéressant et peu performant surtout qu'il y a des fonctions du type array_diff() et compagnie spécialisés pour ça ...

    J'aimerais récupérer les valeurs qui sont dans tab1 mais qui ne se trouvent pas dans tab2 ! Dans l'exemple ci-dessous, il devrait m'afficher [bbb]
    Peut-on réussir à faire ça ?

    Tab1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tab1[0]["ID"] = 1
    tab1[0]["TAG"] = "aaa"
     
    tab1[1]["ID"] = 2
    tab1[1]["TAG"] = "bbb"
     
    tab1[2]["ID"] = 3
    tab1[2]["TAG"] = "ccc"
     
    tab1[3]["ID"] = 4
    tab1[3]["TAG"] = "ddd"
    Tab2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    tab1[0]["ID"] = 1
    tab1[0]["TAG"] = "aaa"
     
    tab1[1]["ID"] = 2
    tab1[1]["TAG"] = "ccc"
     
    tab1[2]["ID"] = 3
    tab1[2]["TAG"] = "ddd"
    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Je pense que les boucles imbriquées semble être un bonne solution quand même. Lorsque je compare plusieurs tableaux,j'utilise cette méthode. Elle n'est pas si longue que ça. Pour les valeurs qui sont différentes, tu devras les mettre dans un tableau temporaire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 47
    Par défaut
    Salut,

    Je viens tout juste de trouver la solution.

    Donc là je récupère mes données :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $qry = "SELECT champ1, champ2 FROM `videos;";
    $stmt = $con->prepare($qry);
    $stmt->execute();
    $res1 = $stmt->fetchAll(PDO::FETCH_COLUMN);
    Le "PDO::FETCH_COLUMN" est important, il permet de faire un Index sur le 1er champ.

    Et ensuite, pour comparer mes 2 tableaux c'est tout simple.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = array_diff($res1, $res2);

    Je n'ai plus qu'à parcourir $result.

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

Discussions similaires

  1. [Tableaux] Comparer deux tableaux
    Par popy67 dans le forum Langage
    Réponses: 2
    Dernier message: 05/05/2008, 07h22
  2. [Tableaux] Comparer 2 tableaux à 2 dimensions
    Par lili2704 dans le forum Langage
    Réponses: 3
    Dernier message: 16/11/2007, 14h21
  3. [Tableaux] Trier un tableau multi-dimensionnel associatif
    Par Oprichnik dans le forum Langage
    Réponses: 9
    Dernier message: 27/07/2007, 23h16
  4. Réponses: 5
    Dernier message: 04/10/2006, 18h49
  5. [Tableaux] Comparer 2 tableaux
    Par lama85 dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2006, 15h19

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