-1
我有一個需要排序的多維數組。該陣列是這樣的:等價於MySQL的PHP usort
$array[0] = $key1[0]['date']$key2['title']
$array[1] = $key1[0]['date']$key2['title']
$array[2] = $key2['title']
每個陣列項可具有多個日期($ KEY1 [0] [ '日期'],$ KEY1 [1] [ '日期'],等等)或者根本沒有。當出現時,日期如下:2015-10-04T00:00。
我保存的strtotime($ KEY1 [0] [ '日期']),並在MySQL表中的每個數組元素的KEY2 [ '標題'],然後訂購它像這樣:
(CASE WHEN date < UNIX_TIMESTAMP(CURDATE()) THEN 0 ELSE 1 END) DESC, date ASC
我需要直接在數組中複製結果,可能使用usort(); $ key1 [0] ['date']是排序的關鍵,這可能不存在。
規則應該是,如果日期在將來,它應該命令它升序(最接近的是第一個),如果日期在過去,它應該命令它降序。如果沒有日期,它應該把這些條目放在中間(未來和現在之間)。
例如,如果今天是2015年10月4日,它應該排序:
- 2015年10月5日
- 2015年10月10日
- 2015年12月1日
- 無日期設置
- 沒有日期爲
- 2015年10月3日
- 2015年9月1日
謝謝。
這引發異常'$數組[0] = $ key1的[0] [ '日期'] $ KEY2 [」 title']' –
所以數組的正確代碼應該是$ key1 [0] ['date'] [$ key2] ['title']。但讓我們得到正確的需求。 你想啓用排序key2嗎? – user2420647
謝謝你指出。我需要對key1 [0]啓用排序(按日期升序排序以便將來日期,降序排列過去的日期以及無日期的條目應該介於兩者之間)。 – Marius