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

PHP如何解析包含数组的JSON 提取nodes节点下的id与time值

PHP解析包含数组的JSON结构解决方案

你调用json_decode($json, TRUE)时传入了第二个参数TRUE,已经将JSON整体转为了关联数组,无法取值的核心原因是nodes字段对应的值是索引数组+关联数组的嵌套结构,需要按层级指定下标访问:

  • $details['nodes'] 对应整个nodes数组,是索引数组,数组元素对应你JSON里的两个对象
  • 索引数组的下标从0开始计数,第一个节点的下标为0,第二个为1
  • 每个节点本身是关联数组,可以用id、time作为键取值

具体取值示例

  1. 单独取指定节点的字段
// 取第一个节点的id
echo $details['nodes'][0]['id']; // 输出68
// 取第一个节点的time
echo $details['nodes'][0]['time']; // 输出987
// 取第二个节点的id
echo $details['nodes'][1]['id']; // 输出69
  1. 遍历所有nodes节点批量取值
foreach($details['nodes'] as $node) {
    echo 'id: ' . $node['id'] . ',time: ' . $node['time'] . '<br>';
}

原有代码的优化建议

  • 不要使用@错误抑制符,会掩盖请求失败、JSON格式错误等问题,排查时可以先去掉方便定位问题
  • 关联数组的字符串键需要加单引号,你原有代码里的$details[code]写法不规范,应当改为$details['code']
  • 可以加JSON解析校验逻辑,避免JSON格式异常导致后续报错:
$details = json_decode($json, TRUE);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析失败: ' . json_last_error_msg());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:24:03