【问题标题】:PHP JSON array multi-element parsingPHP JSON数组多元素解析
【发布时间】:2018-03-17 06:44:24
【问题描述】:

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

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

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

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

即这仅对页面有效,

// 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 =&gt; $communityUrl . 'api/calendar/events' . '?sortBy=title',

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

我认为我们很接近,但只是缺少某些方面,尽管我不确定是什么。在我们遍历 $json[results] 时,不知何故需要迭代 $json[page]。我还在尝试其他组合。

【问题讨论】:

  • don't specify the [page] 然后申请foreach,获取所有页面的所有交互数据
  • 我可以使用 API 的多个选项来执行 cURL,其中之一是指定在 JSON 中返回哪个特定页面,或者只是接受它默认返回的内容。 CURLOPT_URL =&gt; $communityUrl . 'api/calendar/events' . '?sortBy=title',CURLOPT_URL =&gt; $communityUrl . 'api/calendar/events' . '?sortBy=title&amp;page=2', 我认为我们很接近,但只是缺少某些方面,尽管我不确定是什么。在我们遍历 $json[results] 时,不知何故需要迭代 $json[page]。我还在尝试其他组合。

标签: php json


【解决方案1】:

你要做的是:-

1.不要指定[page],让所有的pages数据都在single-array里面

2.Apply foreach() 两次遍历数组

3.获取所需数据

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

【讨论】:

  • 太棒了。谢谢!它的表现完全符合预期。现在开始学习 foreach!再次感谢您!
  • @Kodiak 很高兴为您提供帮助):)
  • -更新- 最初我认为它已经完成了我需要的操作,但是它并没有遍历七个页面,而是仅遍历第一页 5 次,从而导致正在执行的操作复制了 5 倍。我将立即添加更多详细信息以帮助澄清。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2014-10-31
    • 2015-11-14
    相关资源
    最近更新 更多