PHP JSON数组多元素解析

时间:2018-03-17 06:44:25

标签: php json

我有一个API JSON元素,它返回一个包含以下某些内容的数组:

Array(    
[page] => 1    
[perPage] => 25    
[totalResults] => 161    
[totalPages] => 7    
[results] => Array of interesting information

我知道如何查询[GET]单个页面,并且可以轻松解析25 [结果]并访问[页面]上的有趣信息。但是,如果我没有在查询中指定[页面],我仍然可以从[page] =>开始获得完整的结果。 1.

我的问题是有一种从[page] =>迭代的方法1到[page] => 7,同时迭代每个[结果]类似于下面的代码示例?

即。这仅对页面有效,

// Display the results we are after
for ($x=0; $x < $json[perPage]; $x++) {
    echo $json[results][$x][title] .'<br>';
    echo $json[results][$x][start] .'<br>';
}

修改的 我可以使用API​​的多个选项来执行cURL,其中一个选项是指定要在JSON中返回的特定页面,或者仅接受默认返回的内容。
    CURLOPT_URL => $communityUrl . 'api/calendar/events' . '?sortBy=title',

    CURLOPT_URL => $communityUrl . 'api/calendar/events' . '?sortBy=title&page=2',

我认为我们很接近,但只是遗漏了一些方面,虽然我不确定是什么。不知怎的,$ json [page]需要在我们浏览$ json [results]时进行迭代。我还在尝试其他组合。

2 个答案:

答案 0 :(得分:0)

你要做的是: -

1.不要指定[page],以便所有页面数据都在单数组

2.应用foreach()两次遍历数组

3.获取所需数据

foreach($json as $js){
    foreach($json[results] as $jr){
        echo $jr[title] .'<br>';
        echo $jr[start] .'<br>';
    }
}

答案 1 :(得分:0)

对于这个特定的REST API,每次都必须查询改变页面的API。没有所有事件的完整查询转储。