PHPでcsvを読み込み、配列に格納する方法
PHPにて、csvファイルを読み込んで取得し、配列に変換して格納する方法についてまとめました。
解説にあたって、「csv」フォルダにある「syukujitsu.csv」という、2020年前半の祝日をcsv形式でまとめたファイルを使用します。
2020/1/1,元日 2020/1/13,成人の日 2020/2/11,建国記念の日 2020/2/23,天皇誕生日 2020/2/24,休日 2020/3/20,春分の日 2020/4/29,昭和の日 2020/5/3,憲法記念日 2020/5/4,みどりの日 2020/5/5,こどもの日 2020/5/6,休日
フォルダ・ファイル構成はこちら。
- csv
- syukujitsu.csv
- csv_get.php
PHPでcsvファイルを取得し配列に変換する
file_get_contentsでcsvファイルを変数に格納し、その後改行毎の配列にexplode()で変換します。
変換した配列をforeachの繰り返し処理で、同じくexplode()でカンマ区切りの配列に変換します。
//ファイルを変数に入れる $csv_file = file_get_contents('csv/syukujitsu.csv'); //変数を改行毎の配列に変換 $aryHoge = explode("\n", $csv_file); $aryCsv = []; foreach($aryHoge as $key => $value){ //if($key == 0) continue; 1行目が見出しなど、取得したくない場合 if(!$value) continue; //空白行が含まれていたら除外 $aryCsv[] = explode(",", $value); }
$aryCsvをprint_rで確認してみると、しっかりとcsvファイルが配列となっていることが分かります。
print_r($aryCsv);
(
[0] => Array
(
[0] => 2020/1/1
[1] => 元日
)
[1] => Array
(
[0] => 2020/1/13
[1] => 成人の日
)
[2] => Array
(
[0] => 2020/2/11
[1] => 建国記念の日
)
[3] => Array
(
[0] => 2020/2/23
[1] => 天皇誕生日
)
[4] => Array
(
[0] => 2020/2/24
[1] => 休日
)
[5] => Array
(
[0] => 2020/3/20
[1] => 春分の日
)
[6] => Array
(
[0] => 2020/4/29
[1] => 昭和の日
)
[7] => Array
(
[0] => 2020/5/3
[1] => 憲法記念日
)
[8] => Array
(
[0] => 2020/5/4
[1] => みどりの日
)
[9] => Array
(
[0] => 2020/5/5
[1] => こどもの日
)
[10] => Array
(
[0] => 2020/5/6
[1] => 休日
)
)
取得したcsv配列をテーブルで表示させる
csvから変換した配列を、テーブルレイアウトに合わせて表示させる方法です。
<table> <tr> <th>日付</th> <th>祝日名</th> </tr> <?php foreach($aryCsv as $value){ ?> <tr> <td><?php echo $value[0] ?></td> <td><?php echo $value[1] ?></td> </tr> <?php } ?> </table>
実際に実行すると、しっかりテーブルレイアウトとして表示されていることが分かります。
日付 | 祝日名 |
---|---|
2020/1/1 | 元日 |
2020/1/13 | 成人の日 |
2020/2/11 | 建国記念の日 |
2020/2/23 | 天皇誕生日 |
2020/2/24 | 休日 |
2020/3/20 | 春分の日 |
2020/4/29 | 昭和の日 |
2020/5/3 | 憲法記念日 |
2020/5/4 | みどりの日 |
2020/5/5 | こどもの日 |
2020/5/6 | 休日 |
csv区切りの数によって、thとtdの行を増やしたりして対応してください。
以上、PHPでcsvを読み込み、配列に格納する方法、でした。
ディスカッション
コメント一覧
まだ、コメントがありません