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 に答える