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

如何访问Mailgun API返回结果中的嵌套对象与数组?

嘿,我来帮你理清怎么访问这个Mailgun API返回的嵌套对象和数组~ 其实核心就是记住PHP里对象和数组的访问规则,结合你的$result结构,一步步拆解就行:

首先先明确两个基础规则:

  • 对象的属性用 -> 来访问
  • 数组的元素用 [] 来访问(索引数组用数字下标,关联数组用键名)

接下来针对你的$result结构,逐个场景举例:

1. 先拿到最外层的响应体对象

$responseBody = $result->http_response_body;

2. 获取items数组及其中的元素

items 是一个索引数组,第一个元素下标是0:

// 拿到整个items数组
$allItems = $responseBody->items;

// 直接拿到第一个item对象
$firstItem = $responseBody->items[0];

3. 访问geolocation里的地理位置信息

第一个item里的geolocation是个对象,直接用->链式访问属性就行:

$country = $firstItem->geolocation->country; // 结果是'UK'
$city = $firstItem->geolocation->city; // 结果是'London'
$region = $firstItem->geolocation->region; // 结果是'72'

4. 处理tags数组

tags是一个空数组,如果后续有标签,这么访问:

$tags = $firstItem->tags;
// 取第一个标签(先判断数组非空避免报错)
if (!empty($tags)) {
    $firstTag = $tags[0];
}

5. 访问带连字符的属性(比如mailing-list和list-id)

因为属性名包含连字符,不能直接写->mailing-list,需要用花括号包裹属性名:

// 直接获取list-id
$listId = $firstItem->{'mailing-list'}->{'list-id'};

// 或者分步来,更清晰
$mailingListObj = $firstItem->{'mailing-list'};
$listId = $mailingListObj->{'list-id'};

小提示:避免不存在的属性/元素报错

如果担心某个层级可能不存在(比如items为空,或者geolocation缺失),可以用null合并运算符??或者isset()来做安全处理:

// 安全获取country,不存在时返回默认值'Unknown'
$country = $result->http_response_body->items[0]->geolocation->country ?? 'Unknown';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:20:04