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 :

Difference entre deux tableaux


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut Difference entre deux tableaux
    Bonjour,

    J'ai 2 tableaux (array) et je voudrait récupéretr la difference entre les deux mais quand je fait "array_diff_assoc" il me sort un array to string conversion ....

    Voila ce que je fais :
    Tableau 1 : $dataToSave['file-collection']
    Array
    (
        [0] => Array
            (
                [lien] => 
                [titre] => ggg
                [commentaire] => gggggg
            )
        [1] => Array
            (
                [lien] => 
                [titre] => jjjjjj
                [commentaire] => jjjj
            )
        [2] => Array
            (
                [lien] => Array
                    (
                        [name] => 1.jpg
                        [type] => image/jpeg
                        [tmp_name] => ./data/diaporamas/1_568e4591455f6.jpg
                        [error] => 0
                        [size] => 186747
                    )
    
                [titre] => 
                [commentaire] => 
            )
        [3] => Array
            (
                [lien] => Array
                    (
                        [name] => 2.jpg
                        [type] => image/jpeg
                        [tmp_name] => ./data/diaporamas/2_568e459154046.jpg
                        [error] => 0
                        [size] => 745737
                    )
    
                [titre] => 
                [commentaire] => 
            )
    )
    Tableau 2 : $postReceive['file-collection']
    Array
    (
        [0] => Array
            (
                [titre] => ggg
                [commentaire] => gggggg
            )
        [1] => Array
            (
                [titre] => jjjjjj
                [commentaire] => jjjj
            )
    )
    Difference :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "<pre>";
    $result_array = array_diff_assoc($dataToSave['file-collection'], $postReceive['file-collection']);
     
    echo "**********************************************************<br><pre>";
    print_r($result_array);
    echo "</pre>";
    Erreur :
    Notice: Array to string conversion in C:\UniServerZ\vhosts\printaplus\hall\module\User\src\User\Controller\BookController.php on line 167
    J'aimerais avoir le résultat comme ceci :
    Array
    (
        [0] => Array
            (
                [lien] => Array
                    (
                        [name] => 1.jpg
                        [type] => image/jpeg
                        [tmp_name] => ./data/diaporamas/1_568e4591455f6.jpg
                        [error] => 0
                        [size] => 186747
                    )
                [titre] => 
                [commentaire] => 
            )
        [1] => Array
            (
                [lien] => Array
                    (
                        [name] => 2.jpg
                        [type] => image/jpeg
                        [tmp_name] => ./data/diaporamas/2_568e459154046.jpg
                        [error] => 0
                        [size] => 745737
                    )
                [titre] => 
                [commentaire] => 
            )
    )
    Merci de votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Lu dans la doc PHP:


    Citation Envoyé par php
    Note: Notez bien que cette fonction ne travaille que sur une dimension de tableau. Bien sur, vous pouvez utiliser des sous dimensions de tableau comme ceci : array_diff_assoc($array1[0], $array2[0]);.

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    À vrai dire le tableau 1 n'a aucun item commun avec le tableau 2 (lLes items du tableau 2 n'ayant pas de clef [liens]), donc la différence entre le tableau 1 et le tableau 2 serait en toute rigueur le tableau 1.

    Dans ton résultat souhaité, les clefs (qui sont des indexes) ne sont pas conservées: les indexes 2 et 3 du tableau 1 se retrouvent aux indexes 0 et 1 dans le tableau résultat. Donc tu n'as pas besoin d'une fonction en _assoc.

    La fonction qui convient est array_udiff avec laquelle tu pourras préciser les modalités de comparaison des éléments dans la fonction de callback.

    Si l'absence de clefs [liens] dans le tableau 2 est juste un oublie de ta part, alors la fonction array_diff est suffisante.

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. [Tableaux] la difference entre isset et empty
    Par ghita269 dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2005, 01h07
  3. Difference entre fenetre et boite de dialog
    Par billyboy dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2003, 15h43
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 08h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 02h06

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