[英]PHP - Is there a way of looping through all elements in a JSON file if I could only fetch 100 items at one call?
我需要顯示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文件的方法,而不知道該文件具有的元素數量。 我最終的期望是找到一種方法來顯示所有這些元素的數量。 謝謝!
我使用類似的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++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.