みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

csvファイルを読み込んだ時の「ゼロ」の扱い

すみません、教えてください。
test.csv というファイルに、

佐藤, 東京
田中, 大阪
中西, 京都

というデータが入っていたとして、以下を使って読み込むと、

<?php
$file_name = "test.csv";
$fp = fopen( $file_name, 'r' );
$data = array();
while( $ret_csv = fgetcsv( $fp, 256 ) ){
for($col = 0; $col < count( $ret_csv ); $col++ ){
$data[$col][$row] = $ret_csv[$col];
}
$row++;
}
fclose( $fp );
var_dump($data);
?>

以下のように、 [0] ではなく [""] となってしまうのですが、これを [0] にする方法はないでしょうか。

array(2) { [0]=> array(3) { [""]=> string(6) "佐藤" [1]=> string(6) "田中" [2]=> string(6) "中西" } [1]=> array(3) { [""]=> string(6) "東京" [1]=> string(6) "大阪" [2]=> string(7) "京都 " } }

よろしくお願いいたします。

投稿日時 - 2018-08-15 17:45:51

QNo.9527788

すぐに回答ほしいです

質問者が選んだベストアンサー

う~ん。その前にソースおかしくないですか?
$row ←これどっからきた?

$data = array();
$col=0;
while( $ret_csv = fgetcsv( $fp, 256 ) ){
for($row = 0; $row < count( $ret_csv ); $row++ ){
$data[$col][$row] = $ret_csv[$row];
}
$col++;
}
じゃないかと。
それで、さらに言えば、そもそも代入するだけで終わりでいいので。
$data = array();
while( $data[] = fgetcsv( $fp, 256 ) ) ;
var_dump($data);
こんだけになるとおもわれます。

その後で、縦横を入れ替えたいなら
$data[x][y] -> $data[y][x]
で処理したほうがすっきりしません?

投稿日時 - 2018-08-15 18:14:14

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問