按列解析PHP中的CSV文件

时间:2019-03-18 07:39:33

标签: php csv fgetcsv

我想按列打开CSV(逗号分隔值)文件,我想从3列中获取所有数据。我尝试使用此代码,但这仅按行显示数据:

  $row = 1;
    if (($handle = fopen("ut.csv", "r")) !== FALSE) {
      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
      }
      fclose($handle);
    }

我如何从一列中获取所有数据?

示例: 这是我在Excel中的文件,已导出到SCV: http://prntscr.com/mzcfcw

我想从“名称”和“价格”中获取php值,并在“名称”列中找到重复的值,比较它们的价格。

1 个答案:

答案 0 :(得分:1)

fgetcsv 逐行(行)解析给定的句柄。使用核心php无法按列解析csv文件。但是,如果知道要访问其值的3列的位置,则只需忽略所有其他列:

$imagick = new Imagick();
$imagick->readImage($b);
$imagick->writeImage('output.jpg');

有关fgetcsv的Moe信息:http://php.net/manual/en/function.fgetcsv.php