PHPでCSVファイルを連想配列に変換する方法


  1. fgetcsv関数を使用する方法:
$filename = 'data.csv'; // CSVファイルのパス
$file = fopen($filename, 'r'); // ファイルを読み込みモードで開く
if ($file) {
    $header = fgetcsv($file); // 最初の行をヘッダーとして読み込む
    $data = array(); // 結果を格納する配列
    while (($row = fgetcsv($file)) !== false) {
        $rowData = array();
        foreach ($header as $i => $colName) {
            $rowData[$colName] = $row[$i];
        }
        $data[] = $rowData;
    }
    fclose($file); // ファイルを閉じる
    print_r($data); // 結果を表示する
}
  1. str_getcsv関数を使用する方法:
$filename = 'data.csv'; // CSVファイルのパス
$file = file_get_contents($filename); // ファイルの内容を文字列として読み込む
$rows = explode("\n", $file); // 行ごとに分割する
$header = str_getcsv(array_shift($rows)); // 最初の行をヘッダーとして読み込む
$data = array(); // 結果を格納する配列
foreach ($rows as $row) {
    $rowData = array();
    $values = str_getcsv($row);
    foreach ($header as $i => $colName) {
        $rowData[$colName] = $values[$i];
    }
    $data[] = $rowData;
}
print_r($data); // 結果を表示する

これらのコード例では、CSVファイルを読み込んで各行を連想配列として保存しています。最初の行はヘッダーとして使用され、各列の値は連想配列のキーとして保存されます。