-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