0

我正在编写读取 .csv 文件并在 PHP 中创建关联数组的代码。我想组织数组,使最后一列之前的每一列(按顺序)都是关联数组的一个级别。在非广义情况下:

$data = array();
$file =fopen("data.csv", "r");
while (($line = fgetcsv($file)) !== FALSE)  {
    $var1 = $line[0];
    $var2 = $line[1];
    $value = $line[2];
    $data[$var1][$var2] = $value;
}

无论有多少列(即var1 ... varN),我都希望能够做到这一点。它将被组织成变量(列)1-N 唯一地标识每一行,并且所需的值始终是最后一列。

4

2 回答 2

0

我可以通过构建代码行并使用 eval 语句来做到这一点:

        $str = '$allData["data"]';
        for($x=0; $x<$numVars; $x++) {
            $var = $line[$x];
            if(($x+1) != $numVars) {
                $str .= "['$var']";
            }
        }
        $str .= "=";
        $str .= $line[$numVars-1];
        $str .= ";";
        eval($str);
于 2013-10-23T19:20:38.120 回答
0

考虑到您从文件中取出的那一行中有多少列,只需while在您的内部放置另一个。while这应该足够了。

于 2013-10-23T18:42:17.993 回答