首页 > 解决方案 > PHP将多行csv文件读取到变量

问题描述

我想在我的网站上使用天气预报数据。CSV 文件中有数值天气预报输出。我可以从链接中读取 CSV 文件,然后我可以选择一个预测变量,但我不能将每个“预测数字”保存到 PHP 变量中。请问你能帮帮我吗?

<?php
$today = date("Y-m-d");
$nextday = date('Y-m-d', strtotime($today. ' + 3 days'));

$lat = "40";
$lon = "19.5";
$file = fopen('http://oos.soest.hawaii.edu/erddap/griddap/NCEP_Global_Best.csv?tmp2m[('.$today.'T00:00:00Z):1:('.$nextday.'T00:00:00Z)][('.$lat.'):1:('.$lat.')][('.$lon.'):1:('.$lon.')],ugrd10m[('.$today.'T00:00:00Z):1:('.$nextday.'T00:00:00Z)][('.$lat.'):1:('.$lat.')][('.$lon.'):1:('.$lon.')],vgrd10m[('.$today.'T00:00:00Z):1:('.$nextday.'T00:00:00Z)][('.$lat.'):1:('.$lat.')][('.$lon.'):1:('.$lon.')],pratesfc[('.$today.'T00:00:00Z):1:('.$nextday.'T00:00:00Z)][('.$lat.'):1:('.$lat.')][('.$lon.'):1:('.$lon.')],rh2m[('.$today.'T00:00:00Z):1:('.$nextday.'T00:00:00Z)][('.$lat.'):1:('.$lat.')][('.$lon.'):1:('.$lon.')]', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  $T = $line[3];
  $temp1 = ????????;
  $temp2 = ????????;
  $temp3 = ????????;
      ...
}
fclose($file);
?>

现在如果我尝试$temp1 = $T[0]

我明白了

tK2222222222222322222222222

标签: phpcsv

解决方案


这是我用来解析 CSV 文件的代码块。

  $csvFile = fopen('portfolio.csv', 'r');
  $data = array();
  while ($row = fgetcsv($csvFile)) 
  {
      $data[] = $row;
  }
  fclose($csvFile);
  var_dump($data);

在这个循环结束时,整个 CSV 文件被加载到$data.

循环遍历$data数组以执行您需要的操作。

$data[0][0] will contain A1
$data[0][1] will contain B1 and so on...

$data[1][0] will contain A2
$data[1][1] will contain B2 and so on...

推荐阅读