0

我有这个 Javascript,它从 Google API 服务器接收 JSON,然后输出内容(请注意,为了清楚起见,我的代码已被简化):

function init() {
  gapi.client.setApiKey('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
  gapi.client.load('blogger', 'v2', function() {
    var request = gapi.client.blogger.posts.list({
      'blogId': 'xxxxxxxxxxxxxxxxxxxxxxx',
      'fields': 'items(content,title)'
    });
    request.execute(function(response) {
      for (var i = 0; i < response.items.length; i++)
      {
        $(aDiv).append(response.items[i].title);
      }
    });
  });
}

我有这个 PHP 代码,它基本上做同样的事情:

$recentBlog = json_decode(file_get_contents("https://www.googleapis.com/blogger/v3/blogs/xxxxxxxxxxxxxxxxxxxxxx/posts?key=xxxxxxxxxxxxxxxxx"), true);
foreach ($recentBlog['items'] as $item)
{
    echo $item[`title`];
}

问题是每个代码的输出顺序不同。Javascript 按从上到下的顺序输出到页面2, 1, 0。PHP 从上到下依次是0, 1, 2. 我需要的是“最新”项目位于顶部,所以我需要两者都位于,按从上到下的顺序,2, 1, 0.

除了调用 JSON 数据的不同方法(我假设它们会返回完全相同的响应)之外,似乎唯一真正的区别是一种是for()循环,另一种是foreach()循环。我看不出这会有什么不同,所以我肯定还缺少其他东西。

不管是什么原因,在我目前的情况下,我需要 PHP 符合 Javascript 的顺序,以便最近的在页面顶部。或者,换句话说,从上到下,2, 1, 0。我怎样才能做到这一点?

4

1 回答 1

1

使用array_reverse函数。

$recentBlog = json_decode(...);
$recentBlogReversed = array_reverse($recentBlog['items']);
于 2013-09-10T03:43:19.677 回答