2013-02-10 27 views
1

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

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

回答

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; 

} 

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

+0

这太棒了,谢谢。 – 2016-12-08 22:07:43