我将尝试对从XML(RSS)转换为JSON格式的新闻列表进行排序。在合并源之后,我希望按日期顺序对其进行排序,但我不确定实现的最佳方法。
JSON响应如下:
{ "success":true,
"message":"",
"data":{
"title":"Feed Name",
"item":[{
"title":"test",
"pubdate":"Sun, 20 Oct 2013 21:36:42 GMT"}]
}
}
我将尝试对从XML(RSS)转换为JSON格式的新闻列表进行排序。在合并源之后,我希望按日期顺序对其进行排序,但我不确定实现的最佳方法。
JSON响应如下:
{ "success":true,
"message":"",
"data":{
"title":"Feed Name",
"item":[{
"title":"test",
"pubdate":"Sun, 20 Oct 2013 21:36:42 GMT"}]
}
}
$data = json_decode($yourJsonVariable, true);
array(
'success' => true,
'data' => array(
'title' => 'Feed Name',
'item' => array(
0 => array(
'title' => 'test',
'pubdate' => 'Sun, 20 Oct 2013 21:36:42 GMT'
)
)
)
)
item
数组中的元素进行排序,还是想做一些更复杂的排序(因为你提到了“当源合并时”)。item
数组进行排序是一个相当简单的任务,因为每个元素只是一个包含两个元素的数组,一个命名为title
,另一个命名为pubdate
。在这种情况下,你的排序函数应该如下所示: usort($data['data']['item'], function($a, $b) {
return (strtotime($a['pubdate']) < strtotime($b['pubdate']) -1 : 1);
});