创建具有任意数量关联的PHP关联数组

创建具有任意数量关联的PHP关联数组,php,arrays,associative-array,Php,Arrays,Associative Array,我正在编写代码,读取.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][

我正在编写代码,读取.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唯一地标识每一行,并且所需的值始终是最后一列

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

我可以通过构建代码行并使用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);
$str='$allData[“data”];

对于($x=0;$x我不确定是否理解…如何编写$data[$var1][$var2]…[$varN]=$value行。您是否考虑过创建一个
递归函数来实现这一点?