Boucler des objets PHP à l'aide de clés dynamiques : un guide étape par étape
P粉312195700
P粉312195700 2023-10-10 08:50:47
0
2
649

J'essaie d'analyser un fichier JSON en utilisant PHP. Mais maintenant je suis coincé.

Voici le contenu de mon fichier JSON :

{
    "John": {
        "status":"Wait"
    },
    "Jennifer": {
        "status":"Active"
    },
    "James": {
        "status":"Active",
        "age":56,
        "count":10,
        "progress":0.0029857,
        "bad":0
    }
}

Voici ce que j'ai essayé jusqu'à présent :

<?php

$string = file_get_contents("/home/michael/test.json");
$json_a = json_decode($string, true);

echo $json_a['John'][status];
echo $json_a['Jennifer'][status];

Mais comme je ne connais pas le nom (par exemple 'John''Jennifer')以及所有可用的键和值(例如 'age''count') à l'avance, je pense que je dois créer des boucles foreach.

J'aurais aimé qu'il y ait un exemple.

P粉312195700
P粉312195700

répondre à tous(2)
P粉920199761

Je ne peux pas croire qu'autant de personnes publient des réponses sans lire correctement le JSON.

Si vous itérez séparément $json_a,你就会得到一个对象的对象。即使您传入 true comme deuxième paramètre, vous disposez également d'un tableau 2D. Si vous effectuez une boucle sur la première dimension, vous ne pouvez pas faire écho à la deuxième dimension comme ceci. Donc c'est faux :

foreach ($json_a as $k => $v) {
   echo $k, ' : ', $v;
}

Pour faire écho au statut de chacun, essayez ceci :

 $person_a) {
    echo $person_a['status'];
}

?>
P粉668019339

Pour parcourir un tableau multidimensionnel, vous pouvez utiliser RecursiveArrayIterator

$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
    if(is_array($val)) {
        echo "$key:\n";
    } else {
        echo "$key => $val\n";
    }
}

Sortie :

John:
status => Wait
Jennifer:
status => Active
James:
status => Active
age => 56
count => 10
progress => 0.0029857
bad => 0

Exécuter sur le clavier

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal