我已将 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我希望能够以最近的日期作为第一行进行排序。
Y-m-d H:i:s
您可以使用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);