首页 > 文章列表 > PHP如何高效处理JSON多层嵌套数据并循环输出特定信息?

PHP如何高效处理JSON多层嵌套数据并循环输出特定信息?

277 2025-03-26

PHP如何高效处理JSON多层嵌套数据并循环输出特定信息?

PHP解析并输出JSON多层嵌套数据

处理JSON多层嵌套数据并提取特定信息,需要巧妙地运用PHP的数组操作功能。以下示例演示如何高效地完成此任务:

示例JSON数据:

[
  {
    "school": "A校",
    "grade": "一年级",
    "class": "一班",
    "students": [
      "男#25",
      "女#29"
    ]
  },
  {
    "school": "A校",
    "grade": "一年级",
    "class": "二班",
    "students": [
      "男#30",
      "女#22"
    ]
  }
]

目标HTML输出结构:

学校

年级

班级

  • 性别:人数
  • 性别:人数

PHP代码实现:

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

$jsonArray = json_decode($jsonData, true);

foreach ($jsonArray as $schoolData) {
  echo "

" . $schoolData['school'] . " " . $schoolData['grade'] . " " . $schoolData['class'] . "

"; echo "
    "; foreach ($schoolData['students'] as $studentData) { list($gender, $count) = explode('#', $studentData); echo "
  • " . $gender . ":" . $count . "
  • "; } echo "
"; }

代码解释:

  1. json_decode($jsonData, true): 将JSON字符串解码为关联数组。true参数确保返回关联数组,而不是对象。
  2. 第一个foreach循环迭代学校数据。
  3. explode('#', $studentData): 使用#作为分隔符,将学生数据分割成性别和人数。
  4. list($gender, $count): 将explode的结果赋值给$gender$count变量。
  5. 第二个foreach循环迭代每个学校的学生数据,并输出HTML。

这段代码清晰地展示了如何使用PHP高效地处理JSON多层嵌套数据,并根据需求生成HTML输出。 它避免了不必要的嵌套循环,提高了代码的可读性和效率。

来源:1740007633