I have an array that I would like to sort using a date field from a MySQL database.
Here is a sample of the array which is named news in my class:
[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
)
I want to sort by the updated field.
I have some code I have started but am unsure how to complete it and get it working.
class ProcessClass {
// ....
function sortNews($x)
{
usort($this->news, array("ProcessClass", "cmp")); //correct sort type?
}
function cmp($a, $b)
{
// missing code
}
Can anyone help??
In most cases, will be easier to add
ORDER BY updatedto the end of the SQL query, however if your data is coming from multiple sources and you need to resort in PHP, you can use usort() to sort an array based on a user defined function. To use a class function for comparison, the function MUST be static. It can simply compare theupdatedvalue in the array using the function strcmp() which happens to return exactly what you need to sort by a MySQL formatted date:If you want to reverse sort order, simply swap the comparison params:
return strcmp($b['updated'], $a['updated'])