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 :

PHP et JSON : deux formats de données différents à comparer


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
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut PHP et JSON : deux formats de données différents à comparer
    Bonjour à tous,

    Je rencontre quelques soucis pour traiter une liste de données formatée de manière particulière.
    Voici un extrait du JSON

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    {
      "pdata": {
        "1944": {
          "avatar": null,
          "email": "xxxxxxxxxxxxx",
          "game_name": "bross",
          "pid": 1944,
          "user_id": 4014
        },
        "2258": {
          "avatar": null,
          "email": "xxxxxxxxxxxxx",
          "game_name": "bross",
          "pid": 2258,
          "user_id": 4429
        }
      },
      "ranking": [
        {
          "champid": 39,
          "indicators": {
            "a": 0.0,
            "b": 0.0,
            "c": 0.0,
            "d": 0.0667460233213012,
            "e": 0.0286913334507282
          },
          "pid": 1944,
          "ranking": 1
        },
        {
          "champid": 39,
          "indicators": {
            "a": 0.0,
            "b": 0.0,
            "c": 0.0,
            "d": 0.0482773807121471,
            "e": 0.0207524337663112
          },
          "pid": 2258,
          "ranking": 2
        }
      ]
    }
    on voit une série de donnée encadrée de {} (pdata) et une autre série (ranking) encadrée de []. (j'arrive bien à accéder à ranking mais pas à pdata).
    Là où ca se complique, c'est que j'ai besoin d'afficher les données de cette manière :

    "pdata->email" est classé "ranking->ranking"

    Il me faut donc trouver le ranking->ranking pour lequel le ranking->pid correspond avec le pdata->pid


    Merci d'avance pour votre aide,

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    lis bien la doc de json_decode, si tu fournis le deuxième paramètre à true, tu auras un chouette tableau...

    Voici une soluce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $data = json_decode($json, true);
    extract($data);
     
    foreach ($pdata as $v)
    {
        foreach ($ranking as $w)
        {
            if ($w['pid'] === $v['pid'])
            {
                echo $v['email'], ' est classé ', $w['ranking'], '<br>';
            }
        }
    }

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/06/2013, 13h03
  2. Conversion de deux formats de fichier différents.
    Par ziad.shady dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 27/06/2010, 15h36
  3. Réponses: 3
    Dernier message: 10/04/2009, 13h26
  4. Joindre des tables de deux bases de données différentes
    Par jf1985 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/09/2007, 12h23
  5. Réponses: 3
    Dernier message: 24/09/2007, 11h54

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