是否有办法将下列数组按正确的时间顺序排序?
[0] => Array
(
[date] => Sat, 12 Feb 2011 16:55:13 -0500
[title] => Product 1
[link] => http://blabla/product-1
)
[1] => Array
(
[date] => Sat, 25 Sep 2010 17:52:24 -0400
[title] => Product 2
[link] => http://blabla/product-2
)
[2] => Array
(
[date] => Sun, 05 Dec 2010 17:41:32 -0500
[title] => Product 3
[link] => http://blabla/product-3
)
[3] => Array
(
[date] => Sun, 28 Nov 2010 09:14:39 -0500
[title] => Product 4
[link] => http://blabla/product-4
)
[4] => Array
(
[date] => Tue, 07 Dec 2010 18:43:45 -0500
[title] => Product 5
[link] => http://blabla/product-5
)来自rss提要的数组像这样出现在我面前。
我想按时间顺序对数组进行排序(显然是基于日期):产品1、产品5、产品3、产品4、产品2
为了能够以真实的顺序展示最新的产品(而不是他们给我的奇怪的顺序!-顺便说一句,假冒的产品名称,订单是完全随机的)
非常感谢!
发布于 2011-02-20 18:11:47
使用usort:http://www.phpbuilder.com/manual/function.usort.php
您可以编写一个比较函数,比较两个“元素”(在本例中是日期字符串),并返回它们的正确顺序。
编辑:您可以使用strtotime:http://php.net/manual/en/function.strtotime.php将日期字符串转换为时间戳,然后返回结果时间戳的比较。
发布于 2011-02-20 18:16:16
可以使用array_multisort根据已排序的日期值数组的顺序对原始数组进行排序:
$keyValues = array();
foreach ($arr as $item) {
$keyValues[] = strtotime($item['date']);
}
sort($keyValues);
array_multisort($arr, $keyValues);发布于 2011-02-20 18:09:47
使用usort函数。http://php.net/manual/en/function.usort.php
https://stackoverflow.com/questions/5058881
复制相似问题