- ベストアンサー
phpでcsvファイルから二次元配列を作る
php初心者です。 phpでcsvファイルを読み込んで、 配列[csvの行番号][項目名(csv一行目の内容)]=各々の値 という二次元配列を作りたいのですが、作り方が全く分かりません。 どなたか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<?php $fp = fopen('foo.csv', 'r'); $titles = fgetcsv($fp); while($line = fgetcsv($fp)) { $res[] = array_combine($titles, $line); } fclose($fp); var_dump($res) ?> こんなんでどうでしょう? array_combine()が味噌です。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
データ構造のチェックや、ヘッダーがユニークかどうかなど 手をいれないといけないですが、とりあえずこんな感じで //hoge.php <? $fname="hoge.csv"; $handle=fopen($fname,"r"); $flg=true; $count=0; while ($row = fgetcsv($handle,1024, ",")) { if($flg){ $header=$row; $flg=false; }else{ foreach($row as $key=>$val){ $rows[$count][$header[$key]]=$val; } } $count++; } print "<pre>"; print_r($rows); print "</pre>"; ?> //hoge.csv head1,head2,head3 data11,data12,data13 data21,data22,data23 data31,data32,data33 data41,data42,data43 data51,data52,data53 data61,data62,data63
お礼
ありがとうございました。助かりました。
お礼
ありがとうございました。 array_combineは使った事が無かったので(というか知りませんでした)とても勉強になりました。