php-如果我只能一次呼叫只能获取100个项目,是否有一种方法可以通过JSON文件中的所有元素进行循环



我需要显示JSON文件的所有元素/对象。目前,我只能调用一个偏置(启动索引(和限制的端点。您可以获得的最大元素数为100(限制(。我想知道我如何获取JSON文件的所有元素并将它们存储在数组中,而不知道JSON文件中有多少个元素。

最初,我试图将前500个元素保存在数组中。问题在于,该数组的输出大小为5而不是500,因为getElements端点返回100个元素的列表,因此数组实际存储的实际存储在每个索引上是100个元素。因此,例如,json_array [0]包含前100个元素,json_array [2]包含下一个100个元素等。

$offset = 0;
$limit = 100;
$json_array = array();
while($offset < 500)
{
array_push($json_array,getElements($token,"api/Elements?offset=".$offset."&limit=".$limit));
$offset+=100;
}
echo count($json_array)

我希望找到一种循环浏览整个JSON文件的方法,而不知道该文件的元素数量。我的最终期望是找到一种显示所有这些元素数量的方法。谢谢!

i与类似的API一起使用 - 有一个per_page选项和page选项。

幸运的是,如果结果少于per_page值,我要击中的API就可以返回所有内容,而没有错误,因此我要做的就是在我获取100个记录时简单地循环。

类似:

$fetched=100;
$page=0;
$per_page=100;
$total_result=array();
while($fetched==100){
  $res=json_decode(file_get_contents($API_URL."?offset=".($page*$per_page));
  $fetched=count($res);
  // add res to big result set
  for($i=0;$i<$fetched;$i++){
     $total_result[]=$res[$i];
  }
  $page++;   
}

最新更新