dav*_*ter 2 php mysql arrays sorting date
我有一个数组,我想使用MySQL数据库中的日期字段进行排序.
以下是news在我的类中命名的数组示例:
[48] => Array
(
[id] => 14
[type] => 3
[updated] => 2010-04-17 13:54:42
)
[49] => Array
(
[id] => 15
[type] => 3
[updated] => 2010-04-17 13:57:21
)
Run Code Online (Sandbox Code Playgroud)
我想按updated字段排序.
我有一些我已经开始的代码,但我不确定如何完成它并让它工作.
class ProcessClass {
// ....
function sortNews($x)
{
usort($this->news, array("ProcessClass", "cmp")); //correct sort type?
}
function cmp($a, $b)
{
// missing code
}
Run Code Online (Sandbox Code Playgroud)
谁能帮忙?
在大多数情况下,将更容易添加ORDER BY updated到SQL查询的末尾,但是如果您的数据来自多个源并且您需要使用PHP,则可以使用usort()基于用户定义的函数对数组进行排序.要使用类函数进行比较,函数必须是静态的.它可以简单地updated使用strcmp()函数比较数组中的值,该函数恰好返回您需要按MySQL格式化日期排序的内容:
class ProcessClass {
// this must be static
static function sort_by_updated($a, $b)
{
return strcmp($a['updated'], $b['updated']);
}
function sortNews()
{
usort($this->news, array("ProcessClass", "sort_by_updated"));
}
Run Code Online (Sandbox Code Playgroud)
如果要反转排序顺序,只需交换比较参数: return strcmp($b['updated'], $a['updated'])