将CSV列和行存储为php变量

时间:2013-02-10 20:53:20

标签: php csv generator

我有一个包含2,000行和大约25列的半大型CSV文件。 我需要知道如何将单元格转换为变量。如果可能的话。 IE将单元格A3转换为php变量,然后当用户单击按钮时我可以回显。我正在制作一台发电机。

我在互联网上找不到任何真正有用的东西。

2 个答案:

答案 0 :(得分:1)

PHP有一个函数:fgetcsv。您可以使用它来返回文件资源中的下一行(然后前进指针)。它将返回一个数组,其中每个元素都是CSV中的一个字段。

您可以这样使用它:

$csv = array();

if (FALSE !== $handle = fopen("example.csv", "r"))
{

  while (FALSE !== $row = fgetcsv($handle))
  {
    $csv[] = $row;
  }

}

然后,您可以执行以下操作,假设CSV中的第一行包含列标题,以将数值数组转换为关联数组:

$new_csv = array();

foreach ($csv as $row)
{

  $new_row = array();

  for ($i = 0, $n = count($csv[0]); $i < $n; ++$i)
  {
    $new_row[$csv[0][$i]] = $row[$i]; 
  }

  $new_csv[] = $new_row;

}

然后,如果要访问第一行的“名称”列(其中“第0”行是列标题),则调用$new_csv[1]['name']。或者,如果没有标题行,并且您知道“名称”列是第一列,则可以调用$csv[0][0]

答案 1 :(得分:0)

查看fgetcsvstr_getcsv方法(请参阅示例链接)。