所以我有一個二維數組,看起來有點像這樣:如何通過主日期鍵和二級字母數字在PHP排序
[0] => Array(
[date] => 23-01-2017
[name] => bbb
[othertext] => text2
)
[1] => Array(
[date] => 23-01-2017
[name] => aaa
[othertext] => text3
)
[2] => Array(
[date] => 24-01-2017
[name] => aaa
[othertext] => text1
)
注:這個問題沒有標記爲MySQL中,所使用的數據庫是MongoDB,排序類型爲'date' => 'asc'
。
目前這是從我的數據庫按日期排序返回,但沒有考慮名稱屬性。我想現在通過date
對此進行排序,對於相同日期的條目,然後按name
排序。
我目前的做法是在其上運行的數據的array_multisort
:
array_multisort(
$array['date'], SORT_STRING,
$array['name'], SORT_STRING,
$arrayCopy //<--This copy of the array has the full datetime object
);
但這然後排序日期作爲字符串,所以在某些情況下它正確排序它;例如1st March
會在2nd Feb
之前。如果將月份放在首位,那麼當Dec/Jan日期排序時它會錯誤排序。
這是什麼方法?我見過提到usort()
,但我不確定如何在這個用例中實現它。 array_multisort
是否具有日期功能?
Simp在你的SQL查詢中加入這種排序'ORDER BY date ASC,name ASC' –
http://stackoverflow.com/questions/2910611/php-sort-a-multidimensional-array-by-element-containing-date –
@ Ayaou這個問題沒有被標記爲MySQL,它使用了一個MongoDB數據庫 - 我已經擴展了這個問題來指定它。 :) – user3420034