我有这个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
.我该如何做到这一点?
使用 array_reverse 函数。
$recentBlog = json_decode(...);
$recentBlogReversed = array_reverse($recentBlog['items']);