按列解析PHP中的CSV文件

问题描述 投票:0回答:1

我想按列打开PHP中的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值,并在列名称中查找重复值,比较它们的价格。

php csv fgetcsv
1个回答
1
投票

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

 //position (zero indexed) of required columns
 $columnsToProcess=[0,3,4]
 for ($c=0; $c < $num; $c++) {
 //do something with value if column's index is in the required columns array 
            if(in_array($c,$columnsToProcess)){
                //value at position $c equals $data[$c]
                echo $data[$c] . "<br />\n";
             }          
        }

关于fgetcsv的moe信息:http://php.net/manual/en/function.fgetcsv.php

© www.soinside.com 2019 - 2024. All rights reserved.