代码之家  ›  专栏  ›  技术社区  ›  Mitchell B

PHP-将csv文件中的某些列放入数组

  •  0
  • Mitchell B  · 技术社区  · 9 年前

    我真的很难弄清楚如何将csv文件中的某些列数据转换为数组。目前,我可以使用以下命令将整个内容转换为数组:

    $csv = array();
    
    $lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES);
    
    foreach ($lines as $key => $value)
    {
        $csv[$key] = str_getcsv($value);
    }
    

    但是,有没有一种方法可以只从数组中获取某些列?例如第1列和第2列,或者第1列到第4列?等

    目标是这样做,以便我可以用FPDF将某些数据放入表中。我也在努力:/

    -因此,如果有人知道如何快速将一个好看的表格放入FPDF,请告诉我。我正在尝试使用网站上的BasicTable函数,但我的表太离谱了,看起来不太好。这是我第一次使用它,而且进展得非常糟糕。

    我知道这是两个问题。但标题中的第一个是最主要的一个。 谢谢

    2 回复  |  直到 9 年前
        1
  •  1
  •   vincent163    9 年前

    str_getcsv()解析一行,只需从该行提取数据。

    $csv = array();
    
    $lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES);
    
    foreach ($lines as $key => $value)
    {
        $row = str_getcsv($value);
        $csv[$key] = array($row[0], $row[1], ..., $row[n]);
    }
    

    在其中指定所需的列编号 array($row[0], $row[1], ..., $row[n]);

        2
  •  1
  •   MichaelClark    9 年前

    可以在每行上使用explode()来获取数组中的列。然后,当您写入$csv时,只需选择您想要的,跳过您不想要的。

    for{
        $row = explode(",", $line);
        $csv[$key]['wantedcol1'] = $row[0];  //first col
        $csv[$key]['wantedcol2'] = $row[2];  //third col
    }