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

PHP使用Curl调用REST API遍历嵌套数组获取多字段值

嘿,这事儿好办!我来给你捋清楚怎么遍历这个嵌套数组,批量拿到你要的nid、vid、cid值。

首先,既然你已经能通过$resultArray[0]['nid'][0]['value']拿到单个元素,说明你的$resultArray是一个外层数组包含多个子项,每个子项里的nid、vid、cid又都是嵌套数组(第一个元素存着value)。那直接用foreach循环外层数组就行,代码示例如下:

// 假设$resultArray是你通过Curl获取到的接口返回数组
foreach ($resultArray as $item) {
    // 提取nid、vid、cid的值,用null合并运算符避免字段缺失报错
    $nid = $item['nid'][0]['value'] ?? null;
    $vid = $item['vid'][0]['value'] ?? null;
    $cid = $item['cid'][0]['value'] ?? null;

    // 这里放你循环里要执行的逻辑,比如打印、存入数据库、组装新数组等
    echo "当前项:nid={$nid}, vid={$vid}, cid={$cid}\n";
    
    // 举个组装新数组的例子,方便后续批量处理
    // $processedItems[] = [
    //     'nid' => $nid,
    //     'vid' => $vid,
    //     'cid' => $cid
    // ];
}

几个关键点说明:

  • 用foreach ($resultArray as $item)遍历外层数组的每一个子项,$item就是你之前用$resultArray[0]拿到的单个元素。
  • ?? null是PHP 7+的null合并运算符,如果某个子项里没有nid(或者nid[0]不存在),会自动返回null,避免出现Undefined index的报错,让代码更健壮。
  • 如果你的接口返回的nid可能有多个元素(比如不是只有[0]),那可以再套一层foreach遍历$item['nid'],但根据你给出的单个取值方式,应该是每个字段只有一个value,所以上面的代码足够用。

要是你还有特殊情况(比如数组结构有变化),随时说细节,我再调整!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:23:45