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] Demande d'aide sur les tableaux multidimensionnels


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Tableaux] Demande d'aide sur les tableaux multidimensionnels
    Bonjour,

    J'aimerais faire une comparaison sur un tableau multidimensionnel, et garder les données qui ont changés !
    J'ai trouver la fonction array_diff(); mais elle correspond pas à mes besoins !
    Je vous explique ce que je veux faire :

    Premierement je fais un tableau et j'y met mes resultats de ma requete !
    $tab_tmp=array();
    $sql = "SELECT * FROM `planning`";
    $result=mysql_db_query($base,$sql);
    $i = 0;
    while($row=mysql_fetch_array($result)){
    $tab_tmp[$i][0]=$row[0];
    $tab_tmp[$i][1]=$row[1];
    $tab_tmp[$i][2]=$row[2];
    $tab_tmp[$i][3]=$row[3];
    $tab_tmp[$i][4]=$row[4];
    $tab_tmp[$i][5]=$row[5];
    $tab_tmp[$i][6]=$row[6];
    $tab_tmp[$i][7]=$row[7];
    $i++;
    }
    là niquel j'ai mon tableau avec mes données
    Voici le resultat sous la forme :
    Array
    (
    [0] => Array
    (
    [0] => titi
    [1] => tata
    [2] => 2006-05-09
    [3] => 2006-05-11
    [4] => 324399.1
    [5] => toto
    [6] => tutu
    [7] => tyty

    )

    [1] => Array
    (
    [0] => toto
    [1] => tutu
    [2] => 2006-05-09
    [3] => 2006-05-09
    [4] => 329143.1
    [5] => tuto
    [6] => totu
    [7] => tita
    )
    etc .....
    )
    Ensuite j'ai fait un parser de fichier et j'y met le resultat de mes données dans un autre tableau $tab_tmp2 !

    Maintenant mon probleme, c'est que je voudrais les comparer, avec array_diff(); celà ne fonctionne pas !
    Y a t'il une autre fonction qui ressemble à array_diff ou bien je dois faire moi meme la comparaison des données ?

    Quelqu'un peut bien m'aider à solutionner mon probleme ?

    Merci d'avance !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Points : 163
    Points
    163
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row=mysql_fetch_array($result)){
    $tab_tmp[$i][]=$row;
    $i++;
    }
    aurait suffit.

    Pour le reste array_diff convient tout à fait normalement, l'erreur est ailleurs.

    Je vais y réfléchir encore un peu et je reviens..

    [edit] est-ce qu'on pourrait avoir un aperçu du contenu du deuxième tableau qu'on voit si tout est ok ?[/edit]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Le deuxieme tableau contient les memes données avec des erreurs pour que je puisse voir la difference !

    Voici ce que j'utilise comme code pour la comparaison :
    $comp = array_diff ($tab_tmp, $tab_tmp2);

    echo "<PRE>";
    print_r($comp);
    echo "</PRE>";
    Par contre les 2 tableaux sont bien remplis !

    Mais le resultat de la fin de $comp est : un tableau vide
    Array
    (
    )

  4. #4
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Array_diff n'examine que le premier niveau voir la doc

    Note : Notez que cette fonction ne vérifie qu'une dimension d'un tableau à n-dimensions. Bien sur, vous pouvez vérifier des dimensions plus profondes en utilisant array_diff($array1[0], $array2[0]);.
    Conclusion : il faut passer par une boucle
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par papyphp
    Array_diff n'examine que le premier niveau voir la doc
    Merci papyphp, j'avais pas vu ça
    Voilà, là j'ai reussi ce que je voulais faire

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

Discussions similaires

  1. Aide sur les tableaux associatifs
    Par nems77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2015, 10h48
  2. [MediaWiki] Demande d'aide sur les pages
    Par ndsaerith dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 15/10/2008, 14h29
  3. [Tableaux] Besoin d'explications sur les tableaux imbriqués
    Par gateaubasque dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2007, 09h12
  4. demande d'aide sur les bouton
    Par naruto01 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/01/2007, 18h20
  5. Demande d'aide sur les regexp
    Par Uld dans le forum Langage
    Réponses: 1
    Dernier message: 18/08/2006, 22h15

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