繁体   English   中英

PHP JSON foreach 数组问题

[英]PHP JSON foreach Array Issue

我正在尝试使用 PHP 来显示来自 API 的一些 JSON 数据。 我需要使用 foreach 来返回我所有的结果,但嵌套在其中的是一个数组。 数组是“亮点”,有时有“描述”,有时有“内容”,有时两者都有。 我需要在 foreach 中做一个 foreach 或沿着这些路线做一些事情,但我尝试的一切都只返回“数组”。

这是 JSON...

https://api.data.gov/gsa/fbopen/v0/opps?q=lte+test+bed+system&data_source=FBO&limit=100&show_closed=true&api_key=CTrs3pcYimTdR4WKn50aI1GcUxyL9M4s1fyBbSer

这是我的 PHP ...

$json_returned = file_get_contents("JSON_URL");
$decoded_results = json_decode($json_returned, true);

echo "Number Found:".$decoded_results['numFound']."</br> ";
echo "Start:".$decoded_results['start']."</br>";
echo "Max Score:".$decoded_results['maxScore']."</br>";

foreach($decoded_results['docs'] as $results){
echo "Parent Link T:".$results['parent_link_t']."</br>";
echo "Description:".$results['highlights']['description']."</br>";
}

显然,我正在使用的工作版本有更多的字段编程,但我将它们删掉以保持这段代码简短和简单,并展示我如何在一个 foreach 中拥有除了“hightlights”字段之外的所有其他内容。 JSON 返回要求我将所有内容都保留在该 foreach 中,那么如何在其中显示数组?

感谢您的任何帮助,并感谢您花时间阅读本文,即使您可以做出贡献。

“描述”是一个包含一个元素的数组,因此您可以使用它。

echo 'Description:' . $results['highlights']['description'][0];

如果它有时有“描述”,有时有“内容”。 使用 isset 检查它是哪一个,或者即使两者都有并相应地打印。

// for description
if(isset($results['highlights']['description'])) {
   echo 'Description:' . $results['highlights']['description'][0];
}
// for content
if(isset($results['highlights']['content'])) {
   echo 'Content:' . $results['highlights']['content'][0];
}

希望这可以帮助。

查看 php array_column()函数: http : array_column()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM