Menggulung objek PHP menggunakan kekunci dinamik: panduan langkah demi langkah
P粉312195700
P粉312195700 2023-10-10 08:50:47
0
2
551

Saya cuba menghuraikan fail JSON menggunakan PHP. Tapi sekarang saya buntu.

Ini ialah kandungan fail JSON saya:

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

Ini yang saya cuba setakat ini:

<?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];

Tetapi memandangkan saya tidak tahu nama (cth. 'John''Jennifer')以及所有可用的键和值(例如 'age''count') terlebih dahulu, saya rasa saya perlu mencipta beberapa gelung foreach.

Saya harap ada contoh.

P粉312195700
P粉312195700

membalas semua(2)
P粉920199761

Saya tidak percaya begitu ramai orang menyiarkan jawapan tanpa membaca JSON dengan betul.

Jika anda mengulang secara berasingan $json_a,你就会得到一个对象的对象。即使您传入 true sebagai parameter kedua, anda juga mempunyai tatasusunan 2D. Jika anda menggelung pada dimensi pertama, anda tidak boleh menggemakan dimensi kedua seperti ini. Jadi ini salah:

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

Untuk menggemakan status semua orang, cuba ini:

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

?>
P粉668019339

Untuk mengulangi tatasusunan berbilang dimensi, anda boleh menggunakan 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";
    }
}

Keluaran:

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

Jalankan pada papan kekunci

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!