fgetcsv 的问题

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

我有一个 csv excel 文件,其中包含两列值:纬度和经度。我需要分别访问每个单独的纬度和经度值。

但我什至无法正确地将 csv 文件读入数组。由于我使用的是 Mac,所以我从以下内容开始:

ini_set("auto_detect_line_endings", true);  
$handle = fopen("countlook.csv", "r");
$data = fgetcsv($handle, 100000, ",");

仅返回第一行(列标题)“纬度,经度”,没有任何实际值。

不知道我哪里错了。任何建议都将非常受欢迎。

fgetcsv
2个回答
1
投票

fgetcsv
逐行读取文件,因此将其放入循环中以获取所有数据非常重要。

$headers = array();
$rows = array();
$c = 0;
while ($data = fgetcsv($handle, 0, ",")) {

        if ($c == 0) {
            $headers = $data;
            
        } else {
            $rows[] = $data;
        }

       $c ++;
    }
fclose($handle);

您现在应该在

$headers
变量中拥有标题,并在
$rows
变量中拥有所有数据。


0
投票

尝试以下操作:

if (($handle = fopen($_FILES["file"]["tmp_name"], "r")) !== FALSE) {
    $data = array();
    while (($rawdata = fgetcsv($handle, 0, $delimiter)) !== FALSE) {
         for ($i=0; $i < count($rawdata); $i++) {
              $data[$i][] = trim($rawdata[$i]);
         }
    }
    fclose($handle);
    var_dump($data)
}
© www.soinside.com 2019 - 2024. All rights reserved.