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


Create PHP associative array with any number of associations

我正在编写读取.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);