Я пытаюсь отсортировать ассоциативный массив по посланной стоимости, которая является дата «% а,% е% б% Y% к:% я (% с)»Сортировка ассоциативного массива по дате значение
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
)
)
Так что это было бы Молодой, Натали, Тейлор, Янтарь. (Массив 1 = получает ключ 1 и 2 и массив 2 получает ключ 3 и 4 кстати)
Я попытался это:
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>";
но Янтарный Рассвет Фокс всегда появляется первым, кто-нибудь знает, где я» м не так?
преобразовать строку даты в метку времени UNIX или объект DateTime внутри пользовательской функции первого – Ghost
@Ghost спасибо за ответ, как бы я идти об этом? например: 'function compareByDate ($ item1, $ item2) { $ item1 = date_format ($ item1 ['posted'], 'Y-m-d H: i: s'); $ item2 = date_format ($ item2 ['posted'], 'Y-m-d H: i: s'); return $ item1 - $ item2; } ' – jenstar
Каков источник данных? –