スレッド表示 | フラット表示〕 全トピック 920 件中 234 番目 次≫ ≪前

CSVで登録したデータの降順での表示

created: 2006-06-13 16:50 | modified: 2006-06-15 08:05 | reply: 4

[3107] CSVで登録したデータの降順での表示

user: 初心者 | created: 2006-06-13 16:50
はじめまして、みなさんのお力をお借りしたく投稿しました。よろしくお願いします。

CSVファイルに 
1行目:ID, 日付,コメント
2行目:1,2006/6/15,ああああああ
3行目:2,2006/6/17,ああああああ

という感じで登録しています。

これを1行目をのぞく2行目以降を降順で表示したいと
思うのですが、

<?php
// ファイル名
$fname = "date.csv";
// ファイルを開く
$file = fopen($fname, "r") or die("エラー:ファイルが開けません");
while (list($id, $day, $com) = fgetcsv($file, 1000, ",")){
echo "<h1>".$day;
echo "</h1>";
echo "<p>".$com;
echo "</p>";
}
fclose($file);
?>

と書いて昇順に読み込んでみたものの、
1行目のはずし方、降順がわかりません。
ゆっくり考えて見たいのですが、せかされてまして
どなたか、教えていただければ幸いです。

よろしくお願いします。
reply: 3108 3111 返信 編集 削除

[3108] Re. CSVで登録したデータの降順での表示

user: ゆうじ | created: 2006-06-13 22:38
こんばんわ。

せかされてまして
どなたか、教えていただければ幸いです。

「せかされて」というと宿題か何かでしょうか。
宿題の手助けは気が引けますのでヒントだけ。

1行目をはずすには、
該当行を読み飛ばすか、読み込んだ後で削除すれば良いです。
降順にするには、全てを配列に読み込んだ後、
逆順に並べ替えれば良いわけで、
1行目をはずすことと合わせて考えると、

1.先ず date.csv から全ての行を読み込み配列に格納する。
2.配列の初めの要素を unset() で削除する。
3.array_reverse() で配列を逆順に並べ替える。
4.foreach() などのループで配列の要素を順に表示する。

こんな処理の流れで一案出来上がり。
Parent: 3107  reply: 3110 返信 編集 削除

[3110] Re.Re. CSVで登録したデータの降順での表示

user: 初心者 | created: 2006-06-13 23:37
ゆうじ様 ありがとうございます。

> 「せかされて」というと宿題か何かでしょうか。
> 宿題の手助けは気が引けますのでヒントだけ。

宿題ではありません。デザインしかしたことないんですが
What's New的所をシステム化できないかということで、
頼まれてしまって、これも勉強と思いひきうけたとこ。
なかなかできなくって、この掲示板にたどり着きました。

> 1行目をはずすには、
> 該当行を読み飛ばすか、読み込んだ後で削除すれば良いです。
> 降順にするには、全てを配列に読み込んだ後、
> 逆順に並べ替えれば良いわけで、
> 1行目をはずすことと合わせて考えると、
>
> 1.先ず date.csv から全ての行を読み込み配列に格納する。
> 2.配列の初めの要素を unset() で削除する。
> 3.array_reverse() で配列を逆順に並べ替える。
> 4.foreach() などのループで配列の要素を順に表示する。
>
> こんな処理の流れで一案出来上がり。

この記事を参考に、参考本と格闘してみます。
正直チンプンカンプンです。

ありがとうございます。
Parent: 3108  返信 編集 削除

[3111] RE:

user: Pluto | created: 2006-06-14 14:59
 お急ぎみたいなんで、さくっと解答編でも。

// CSVファイルの配列化
$dat = file("data.csv");

// 出力用の配列を作成
$out_dat = array();

// 1行目を除く要素を出力用配列に収納
for($i=1;$i < sizeof($dat);$i++) {
array_push($out_dat, $dat[$i]);
}

// 出力用配列を降順にソート
rsort($out_dat);

// 出力用配列の先頭にタイトルを追加
array_unshift($out_dat, $dat[0]);

// 出力
foreach($out_dat as $key => $val) {
echo $val . "\n";
}

 こんな感じでどうでしょうか?
Parent: 3107  reply: 3112 返信 編集 削除

[3112] ありがとうございます。できました。

user: 初心者 | created: 2006-06-15 08:05
できました。すごく助かりました。
本当にありがとうございます。

また、よろしくお願い致します。
Parent: 3111  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 234 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑