I'm trying to sort an associate array by the posted value which is a date "%a, %e %b %Y %k:%i(%s)"
Array
(
[0] => Array
(
[starName] => Natalie Peri
[posted] => Wed, 2 Mar 2016 15:05(09) PM Pacific/Auckland
)
[1] => Array
(
[starName] => Taylor Hay
[posted] => Wed, 2 Mar 2016 15:34(37) PM Pacific/Auckland
)
[2] => Array
(
[starName] => Amber Dawn Fox
[posted] => Tue, 5 Jan 2016 5:54(48) PM Pacific/Auckland
)
[3] => Array
(
[starName] => Young Artist Awards 2016
[posted] => Mon, 14 Mar 2016 11:12(20) PM Pacific/Auckland
)
)
So it would be Young, Natalie, Taylor, Amber. (array 1 = gets key 1 and 2 and array 2 gets key 3 and 4 btw)
I have tried this:
include("../database_connection.php");
$sth = "SELECT starName, date as posted
FROM blog
WHERE blog.approved =1
ORDER BY STR_TO_DATE( posted, '%a, %e %b %Y %k:%i(%s)' ) DESC
LIMIT 2";
$r = $dbc->query($sth);
$results = array();
while($row = $r->fetch_assoc()) {
$results[] = $row;
}
$sth2 = "SELECT starName, posted FROM questions
INNER JOIN stars ON questions.starID = stars.starID
INNER JOIN roles ON stars.starID = roles.starID
LEFT JOIN users ON users.userID = questions.userID
WHERE returned =1
AND most =1
ORDER BY STR_TO_DATE( posted, '%a, %e %b %Y %k:%i(%s)' ) DESC, questionID
LIMIT 2";
$r2 = $dbc->query($sth2);
$results2 = array();
while($row2 = $r2->fetch_assoc()) {
$results2[] = $row2;
}
$result = array_merge($results, $results2);
function compareByDate($item1, $item2) {
return strtotime($item1['posted']) - strtotime($item2['posted']);
}
usort($result, 'compareByDate');
echo "<pre>";
print_r($result);
echo "</pre>";
but Amber Dawn Fox always shows up first, does anyone know where i'm going wrong?