This is my table which I am displaying using PHP from a CSV file
I want to sort it such that all rows of m1 come first, then a blank line, then m2 and so on.
This is my code which i use to display the CSV file as a table.
<?php
$filename = basename(__FILE__, ".php");
$f = fopen("$filename.csv", "r");
while (($line = fgetcsv($f)) !== false) {
echo "<tr>";
foreach ($line as $cell) {
echo "<td>" . htmlspecialchars($cell) . "</td>";
}
echo "</tr>
";
}
fclose($f);
echo "
</tbody></table></body></html>";
?>
You can use below code to render your table. This is how it works:
It creates a data array first form the CSV file
then it sorts the first column ascending order
loop through each line and render table
$mdarray = array();
$filename = basename(__FILE__, ".php");
$f = fopen("$filename.csv", "r");
while (($line = fgetcsv($f)) !== false) {
{
array_push($mdarray, $line);
}
fclose($f);
foreach ($mdarray as $key => $row) {
$names[$key] = $row[0];
}
array_multisort($names, SORT_ASC, $mdarray);
//array_multisort(array_column($mdarray, 0), SORT_ASC, $mdarray);//php version >=5.5
foreach ($mdarray as $line) {
echo "<tr>";
foreach ($line as $cell) {
echo "<td>" . htmlspecialchars($cell) . "</td>";
}
echo "</tr>
";
echo "<hr>"; // blank line
}