1

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

但我什至无法将 csv 文件正确读入数组。由于我使用的是mac,我开始使用:

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

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

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

4

2 回答 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 变量中拥有所有数据。

于 2013-09-25T19:46:20.820 回答
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)
}
于 2013-07-26T14:18:43.277 回答