You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印嵌套JSON数组的值?PHP代码调试求助

问题分析与修复

原代码的错误点

  1. 第一段代码问题:

    • 直接遍历整个JSON对象$d,但实际需要遍历的是$d['value']这个数组
    • displayName不在$v['value']路径下,而是在每个value数组元素的properties字段内,正确路径为$item['properties']['displayName']
  2. 第二段嵌套循环问题:

    • 未定位到正确的value数组入口,多层无差别循环导致输出混乱,没有精准指向目标字段

正确实现代码

先确保请求和JSON解析正常,再精准遍历目标数组获取数据:

$data = curl_exec($ch);
// 验证curl请求是否成功
if ($data === false) {
    die('Curl请求失败');
}
$d = json_decode($data, true);
// 验证JSON解析是否正常
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析失败: ' . json_last_error_msg());
}

// 遍历目标数组并输出指定字段
if (isset($d['value']) && is_array($d['value'])) {
    foreach ($d['value'] as $item) {
        // 打印displayName
        echo $item['properties']['displayName'] . '<br>';
        // 如需其他字段,比如严重级别,可直接扩展:
        // echo '严重级别:' . $item['properties']['severity'] . '<br>';
    }
} else {
    echo '未找到有效的数据集合';
}

核心逻辑说明

  • 先做请求和解析的有效性校验,避免后续代码因数据异常报错
  • 直接定位到$d['value']数组,这是所有规则数据的存储集合
  • 每个数组元素的properties对象包含目标字段displayName,通过层级索引直接获取即可

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:25:18