首页 > 文章列表 > PHP多层嵌套JSON数据输出:如何正确解析性别和人数信息?

PHP多层嵌套JSON数据输出:如何正确解析性别和人数信息?

450 2025-04-03

PHP多层嵌套JSON数据输出:如何正确解析性别和人数信息?

PHP多层嵌套JSON数据解析优化

本文探讨如何有效解析PHP中多层嵌套的JSON数据,特别是针对性别和人数信息的提取。原始代码存在键值匹配错误,导致数据解析失败。以下提供改进后的代码和详细解释。

问题根源在于原始代码使用了错误的JSON键名,导致无法正确访问性别和人数信息。

改进后的代码:

<?php
$jsonData = '[
    {
        "school": "a校",
        "grade": "一年级",
        "class": "一班",
        "numbers": [
            "男#25",
            "女#29"
        ]
    },
    {
        "school": "a校",
        "grade": "一年级",
        "class": "二班",
        "numbers": [
            "男#30",
            "女#22"
        ]
    }
]';

$data = json_decode($jsonData, true);

foreach ($data as $item) {
    echo "{$item['grade']}

{$item['school']} {$item['class']}

"; foreach ($item['numbers'] as $number) { list($gender, $count) = explode('#', $number); echo "{$gender}:{$count}
"; } echo "

"; } ?>

代码改进说明:

  1. 更清晰的键名: 将JSON键名修改为更具描述性的名称,例如将"g"改为"grade","c"改为"class","n"改为"numbers",提高代码可读性和维护性。

  2. 使用更简洁的循环: 使用foreach循环遍历JSON数据,更易于理解和维护。

  3. 数据拆分: 使用explode('#', $number)函数将性别和人数信息拆分开,避免了直接输出字符串的冗余。

  4. 更清晰的输出: 输出格式更清晰,更易于阅读,直接显示性别和人数。

输出结果:

一年级

a校 一班

男:25
女:29


一年级

a校 二班

男:30
女:22


通过以上改进,代码能够准确地解析JSON数据,并清晰地显示学校、年级、班级、性别以及人数信息。 这使得代码更易于理解、维护和扩展。

来源:1740291259