После объединения 4 массивов я использую usort для сортировки окончательного массива по дате. Тем не менее, он сортируется по возрастанию, и мне нужно, чтобы он был по убыванию. Я видел решения для сортировки по убыванию, когда объединяются только 2 массива, но нет примеров более 2.
Каждый массив ($ files, $ newfiles, $ comments и $ rating) имеет следующие поля: ID, заголовок, дата и тип. Мне нужно отсортировать их все по дате убывания. Вот мой текущий код:
function dateSort($a,$b,$c,$d){
$dateA = strtotime($a['Date']);
$dateB = strtotime($b['Date']);
$dateC = strtotime($c['Date']);
$dateD = strtotime($d['Date']);return ($dateA-$dateB-$dateC-$dateD);
//I HAVE ALSO TRIED REVERSING THE ORDER LIKE THIS BUT NO LUCK.
//THE SORTING IS STRANGE AND UN ORDERED WHEN I DO THIS:
// return ($dateD-$dateC-$dateB-$dateA);
}
$result = array_merge($files, $newfiles,$comments,$ratings);
usort($result, 'dateSort');
$descending_array = array_reverse(usort($result, 'dateSort'));
Это переворачивает массив и, таким образом, меняет порядок возрастания на нисходящий.
Других решений пока нет …