ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者PHP講座コミュの質問です!

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめましてm(__)m

CSVファイルの内容を読み込んでそれらを降順に出力するプログラムを作りたいんですが,
アドバイスをいただけないでしょうか?


CSVファイルの内容(sample.csv)

区切り文字を","とし,左からそれぞれ「タイトル」,「名前」,「メッセージ」を表す。
以下、ファイルの内容
****************************************************
AAA,BBB,CCC
111,222,333
p,h,p
P,H,P
****************************************************


//ソースプログラム
$fp = fopen( "sample.csv", "r" );
while( $data = fgetcsv( $fp, 1024, "," ) ) {
print $data[0]. ","; //タイトル
print $data[1]. ","; //名前
print $data[2] ."\n"; //メッセージ
}

//実行結果
AAA,BBB,CCC
111,222,333
p,h,p
P,H,P


上ののプログラムを改良して,

P,H,P
p,h,p
111,222,333
AAA,BBB,CCC

というように出力したいのですが,どうすれば効率良くできるのでしょうか?
やはりfgetcsv関数を使った方がいいのでしょうか?

コメント(3)

fgetcsvを使うならこんな感じですかね。

$fp = fopen( "sample.csv", "r" );
while( $data = fgetcsv( $fp, 1024, "," ) ) {
$rows[] = $data;
}
$rows = array_reverse($rows);
foreach ($rows as $row) {
echo $row[0]. ","; //タイトル
echo $row[1]. ","; //名前
echo $row[2] ."\n"; //メッセージ
}
CSVのフォーマットってカンマで区切っただけなんですよね?
それなら file() で読んで array_reverse() で行けるかも。。
早速試してみたところ,降順で出力できました。
array_reverse関数を使うことがキーだったのですね…


>rysterさん
PHPを始めてからまだ日が浅かったもので,知識が乏しかったのですが…
foreach文というものも知ることができましたw
ありがとうございましたm(_ _)m


>tyさん
そうですね。カンマで区切っただけです。
fgetcsv関数を使わない方法もあるんですね。
これからいろいろ試して効率的なプログラムを組めるように頑張りたいと思います。
ありがとうございましたm(_ _)m

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者PHP講座 更新情報

初心者PHP講座のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング