将数组重组为降序日期顺序

时间:2014-11-19 10:21:06

标签: php arrays

我有一个多维数组,其索引为['dates']。在['dates']里面有另一个索引,里面有一个带有一些数据的['date_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"
      }...

Here is the full array

1 个答案:

答案 0 :(得分:1)

您可以使用Date obj格式而不是strtotime来避免意外。

// 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');
}