Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
严格使用php或javascript按第一列对CSV文件进行排序_Javascript_Php_Csv_Sorting - Fatal编程技术网

严格使用php或javascript按第一列对CSV文件进行排序

严格使用php或javascript按第一列对CSV文件进行排序,javascript,php,csv,sorting,Javascript,Php,Csv,Sorting,这是我用PHP从CSV文件显示的表 我想对它进行排序,使m1的所有行都排在第一位,然后是一个空行,然后是m2,依此类推 这是我用来将CSV文件显示为表格的代码 <?php $filename = basename(__FILE__, ".php"); $f = fopen("$filename.csv", "r"); while (($line = fgetcsv($f)) !== false) { echo "<tr>"; foreach (

这是我用PHP从CSV文件显示的表

我想对它进行排序,使m1的所有行都排在第一位,然后是一个空行,然后是m2,依此类推

这是我用来将CSV文件显示为表格的代码

<?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>\n";
}
fclose($f);
echo "\n</tbody></table></body></html>";
?>

您可以使用以下代码呈现表格。这就是它的工作原理:

  • 它首先从CSV文件中创建一个数据数组

  • 然后将第一列按升序排序

  • 循环遍历每一行并渲染表

     $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>\n";
    
       echo "<hr>"; // blank line
    }
    
    $mdarray=array();
    $filename=basename(_文件,“.php”);
    $f=fopen($filename.csv,“$r”);
    而(($line=fgetcsv($f))!==false){
    {
    阵列推送($mdarray,$line);
    }
    外国法郎(f美元);
    foreach($mdarray作为$key=>$row){
    $names[$key]=$row[0];
    }
    数组\u multisort($names,SORT\u ASC,$mdarray);
    //array_multisort(array_column($mdarray,0),SORT_ASC,$mdarray);//php版本>=5.5
    foreach($mdarray作为$line){
    回声“;
    foreach($行作为$单元格){
    echo“.htmlspecialchars($cell)”;
    }
    回音“\n”;
    echo“
    ”;//空行 }

  • 非常感谢,但是调用未定义函数array_column()时出错它没有显示任何内容。您使用的是哪个php版本?我已经更新了代码以支持旧版本的php@Gaurav请不要忘记将其标记为已接受,以便其他人将来可以从中获得帮助。while语句后面的开放括号是否必要?!