PHP遍历HubSpot接口返回数组仅获取一组值如何解决
问题原因
- 你的代码仅固定读取了
$arrays['results']数组中下标为0的单条提交记录,没有遍历整个results集合。 - HubSpot表单提交接口返回的
results字段存储了所有提交记录,你预期的两组值对应results数组内的两个元素,仅取下标为0的元素只能拿到单条记录的内容。 - 当前输出为第二组值是因为接口默认按提交时间倒序排列,最新提交的记录排在
results数组的首位。
修复代码
新增外层循环遍历所有提交记录,再逐个输出每条记录的字段值即可:
$url='https://api.hubapi.com/form-integrations/v1/submissions/forms/e053ea53-0dae-4cbb-8343-f4ad7bbcaecd?hapikey=8b9998be-1082-4520-a503-c981bab5c57f'; $result = file_get_contents($url); $arrays = json_decode($result,true); // 遍历所有提交记录 foreach($arrays['results'] as $submissionItem) { // 遍历单条记录内的所有字段 foreach($submissionItem['values'] as $field) { echo $field['value']; } // 可选:不同提交记录之间增加分隔符,避免内容拼接混乱 echo "\n===== 下一条提交记录 =====\n"; }
如果仅需要获取指定的两条提交记录,也可以手动指定下标:
// 仅取前两条提交记录 foreach([$arrays['results'][0], $arrays['results'][1]] as $submissionItem) { foreach($submissionItem['values'] as $field) { echo $field['value']; } }
内容的提问来源于stack exchange,提问作者Mark Wroblewski
相关产品推荐
相关产品推荐

