一尘不染

如何在PHP中对多维数组进行排序

php

我已将CSV数据加载到多维数组中。这样,每个“行”都是一条记录,每个“列”都包含相同类型的数据。我正在使用下面的功能加载我的CSV文件。

function f_parse_csv($file, $longest, $delimiter)
{
  $mdarray = array();
  $file    = fopen($file, "r");
  while ($line = fgetcsv($file, $longest, $delimiter))
  {
    array_push($mdarray, $line);
  }
  fclose($file);
  return $mdarray;
}

我需要能够指定要排序的列,以便重新排列行。其中一列包含格式为的日期信息,Y-m-d H:i:s我希望能够以最新日期为第一行进行排序。


阅读 344

收藏
2020-05-26

共1个答案

一尘不染

您可以使用array_multisort()

尝试这样的事情:

foreach ($mdarray as $key => $row) {
    // replace 0 with the field's index/key
    $dates[$key]  = $row[0];
}

array_multisort($dates, SORT_DESC, $mdarray);

对于PHP> = 5.5.0,只需提取列进行排序即可。无需循环:

array_multisort(array_column($mdarray, 0), SORT_DESC, $mdarray);
2020-05-26