Php 将数组重新构造为按日期降序排列

Php 将数组重新构造为按日期降序排列,php,arrays,Php,Arrays,我有一个多维数组,它的索引是['dates']。在['dates']中有另一个索引,在['date\u time']中有一个包含一些数据的索引 目前,阵列这一部分的顺序是从最早的日期/时间到最新的日期/时间。我希望将此反转,以便第一个元素是最近的数据 以下是数据的子集: array(4) { [0]=>array(3) { ["id"]=>string(4) "1279" ["name"]=>string(13) "account_name" ["d

我有一个多维数组,它的索引是
['dates']
。在
['dates']
中有另一个索引,在
['date\u time']
中有一个包含一些数据的索引

目前,阵列这一部分的顺序是从最早的日期/时间到最新的日期/时间。我希望将此反转,以便第一个元素是最近的数据

以下是数据的子集:

array(4) {
  [0]=>array(3) {
    ["id"]=>string(4) "1279"
    ["name"]=>string(13) "account_name"
    ["dates"]=>array(7) {
      [0]=>array(3) {
        ["date_time"]=>string(19) "2014-11-14 09:30:03"
        ["follower_count"]=>string(4) "1567"
        ["gains_losses"]=>string(4) "1567"
      }
      [1]=>array(3) {
        ["date_time"]=>string(19) "2014-11-14 16:30:35"
        ["follower_count"]=>string(4) "1566"
        ["gains_losses"]=>string(2) "-1"
      }...

您可以使用带有格式的Date obj而不是strotime来避免意外

// Comparison function
function cmp($compare, $with) {
    $a = $compare['date_time'];
    $b = $with['date_time'];
    if (strtotime($a) == strtotime($b)) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
}

foreach($your_arr as &$item){
    uasort($item['dates'], 'cmp');
}

关于如何做到这一点,可能存在重复的问题。由于您的日期是YYYY-MM-DD格式,您可以按值对其进行排序。我刚刚将此函数添加到代码中,但似乎没有看到任何更改。我也没有看到任何错误。应该在哪里调用该函数?我添加了&operator,以便foreach修改$your\u数组。再试一次,对不起,J