我試圖排序在公佈的值,它是一個日期相聯繫的數組 「%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
)
)
因此,這將是年輕,娜塔莉,泰勒,琥珀。 (數組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>";
但琥珀黎明福克斯總是首先顯示了,沒有人知道,其中i」錯了嗎?
的字符串轉換成日期Unix時間戳或DateTime對象自定義函數第一 – Ghost
@Ghost感謝您的答覆中,如何將我去嗎?像這樣:'函數compareByDate($ ITEM1,ITEM2 $){$ ITEM1 = DATE_FORMAT($ ITEM1 [ '貼'], 'Y-M-d H:I:S'); $ item2 = date_format($ item2 ['posted'],'Y-m-d H:i:s'); return $ item1 - $ item2; }' – jenstar
什麼是數據的來源? – 2016-03-15 02:31:38