usort排序降序,而不是使用两个以上的数组升序

问题描述 投票:0回答:2

合并4个数组后,我使用usort通过Date对最终数组进行排序。但是,它以升序排序,我需要将它降序。当只有2个数组被合并,但没有超过2个的示例时,我已经看到了用于降序排序的解决方案。

每个数组($ files,$ newfiles,$ comments和$ ratings)具有以下字段: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');

合并4个数组后,我使用usort通过Date对最终数组进行排序。但是,它以升序排序,我需要将它降序。我已经看到了降序排序的解决方案...

php usort
2个回答
5
投票
$descending_array = array_reverse(usort($result, 'dateSort'));

0
投票

这是一个古老的问题,但它出现在某些搜索结果的顶部附近。

© www.soinside.com 2019 - 2024. All rights reserved.