小编典典

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

all

我已将 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我希望能够以最近的日期作为第一行进行排序。


阅读 68

收藏
2022-07-02

共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);
2022-07-02