У меня есть многомерный массив, который нуждается в сортировке. Массив что-то вроде этого:PHP usort эквивалент MySQL
$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] [ 'дата']) и key2 [ 'названия'] каждый элемент массива в таблице тузда, а затем заказать его, как так:
(CASE WHEN date < UNIX_TIMESTAMP(CURDATE()) THEN 0 ELSE 1 END) DESC, date ASC
мне нужен для тиражирования результатов непосредственно в массиве, возможно, используя usort(); $ key1 [0] ['date'] - это ключ для сортировки, который может не существовать.
Правило должно состоять в том, что если дата будет в будущем, она должна упорядочить ее по возрастанию (ближайшая из них первая), и если дата в прошлом, она должна упорядочить ее по убыванию. Если нет даты вообще, она должна помещать такие записи посередине (между будущим и настоящим).
Например, если сегодня 2015-10-04, он должен сортировать:
- 2015-10-05
- 2015-10-10
- 2015-12-01
- дата не установлена
- дата не установлена
- 2015-10-03
- 2015-09-01
Спасибо.
этот рейз исключением '$ массив [0] = $ key1 [0] [ 'дата'] $ key2 [» title '] ' –
Итак, правильный код для массива должен быть $ key1 [0] [' date '] [$ key2] [' title ']. Но давайте вернем спрос. Вы хотите, чтобы иметь возможность сортировать по key2? – user2420647
Спасибо, что указали это. Мне нужно включить сортировку по ключевому слову1 [0] (сортировать по дате по возрастанию для будущих дат, по убыванию для прошлых дат и записей без даты, которые должны быть между ними). – Marius