【问题标题】:Echo statement printing more values than expectedEcho 语句打印的值比预期的要多
【发布时间】:2015-10-14 13:15:44
【问题描述】:

我调用 api 并在响应中收到 JSON,在其中我像这样访问数组数据。问题是 JSON 返回 50 多个对象,但我只想回显其中的 10 个。在我调用的 URL 中,我能够添加一个参数以将 JSON 响应限制为 10,并验证仅返回 10。问题是我的 echo 语句仍然打印所有 50 多个。

1) 当我的 JSON 只返回 10 时,我怎么可能回显 50+?

2) 是否有一个我可以在下面包含的 For 循环只能实现 10 次回显?

<?php

   $OfficeChartData = file_get_contents("http://api.xxxx...");

   if (!empty($OfficeChartData)) {
       $OfficeCharts = json_decode($OfficeChartData, true);

       foreach ($OfficeCharts['value'] as $data) {
           echo "<p>" . $data['Position']['Title'] . "</p>";
       }
   }

?>

【问题讨论】:

  • 您如何验证只有 10 个被退回?

标签: php for-loop echo file-get-contents


【解决方案1】:

执行以下操作:

<?php

   $OfficeChartData = file_get_contents("http://api.xxxx...");

   if (!empty($OfficeChartData)) {
       $OfficeCharts = json_decode($OfficeChartData, true);
       $cnt = 0;
       foreach ($OfficeCharts['value'] as $data) {
           if($cnt==10)break;
           echo "<p>" . $data['Position']['Title'] . "</p>";
           $cnt++;
       }
   }

?>

【讨论】:

  • 如果此答案解决了您的问题,请在 15 分钟无人回答期后将其标记为已接受!谢谢!
  • 嗨罗伯托。正是我需要的。效果很好。我想知道为什么当响应只返回 10 时我仍然能够打印所有这些。奇怪..
  • 很高兴能为您效劳!
  • 亲切的陌生人感谢您的投票!会是什么原因?
  • @Jgunzblatin 顺便说一句,我认为该 API 有问题。我的解决方案更像是 Ductape 修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多