いつも大変参考にさせていただいております。
csvファイルの読み込みとソートをしたく、ネットや過去ログ等を相当調べたのですが、完全に詰まってしまいました。
(検索キーワード:「php csv ソート」「php 二次元配列 ソート」など)
とても困っています。どなたかよろしくお願いします。
以下のようなcsvファイルを読み込みソートしたいのです。
■csvファイル
20110803, A, りんご
20111215, B, みかん
20110306, A, みかん
20110620, A, りんご
20110215, B, りんご
■個別にやりたい処理
(1)、左列の日付で昇順ソートしてすべて表示
(2)、「A」を含む行をすべて表示(日付順)
(3)、「A」+「りんご」を含む行をすべて表示(日付順)
□補足
csvをfgetcsvで読み込み、テーブルに入れて表示するところまではできました。
csvの行は増えていきます(max100行位)。列は固定。
No.2ベストアンサー
- 回答日時:
テーブルというのは、HTMLのテーブルタグって意味に捉えて良いのでしょうか。
とにかく、PHPでCSVを全行ロードして配列に格納は出来ているということですよね?
もしそうであれば、「■個別にやりたい処理」に関してですが、これは、
・ある検索値に対して必要なものを部分的に取り出す処理
・取り出してきた内容をソートする処理
の二つに分類されると思います。
そのうちの、最初の「必要なものを部分的に取り出す処理」に関しては問題ないと思います。
その処理を行った後、自分の決めた実装で、ソートを行いたい、という場合には、
http://www.php.net/manual/ja/function.usort.php
こちらの関数を使います。
使用例)
<?php
usort($data, 'my_sort');
print_r($data);
//降順の場合
function my_sort($a, $b){
if($a[0] < $b[0]) return 1;
if($a[0] > $b[0]) return -1;
return 0;
}
?>
ご回答有り難うございます。
説明不足ですみません。
・HTMLのテーブルタグです。
・CSVを全行ロードして配列に格納できています。
つまりやりたい事は
1.CSVを全行ロードして配列に格納し日付順にソートする
2.ある検索値に対して必要なものを部分的に取り出し表示する
です。
usort関数ですね。
引き続き頑張ってみます。
有り難うございました!
No.1
- 回答日時:
こんばんは。
これは何でやりたいのでしょう???
>テーブルに入れて表示するところまではできました
SQLですか?
だったら簡単ですが・・・。
何が困っているのかがわからないです・・・。
書き込み有り難うございます。
補足が分かりにくくすみません。
試行錯誤する内に「HTMLテーブルタグに入れて表示するところまでは何とかできた」と言う意味です。
ただこれはcsvをそのまま表示するだけのPHPで、質問文の様にソートする処理の仕方(PHPの書き方)が分からなくて困っていたのです。
引き続き頑張ってみます。
有り難うございました。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- XML PHP.laravelについて 1 2023/07/06 15:26
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPで文字列(日本語)の比較
-
条件分岐 if(elseif) switchの...
-
PHP内、ボタン押下と同時にリロ...
-
phpの処理中に画面表示ををする...
-
FTPコマンドでディレクトリごと...
-
onedrive にexcelファイルをア...
-
トランザクションが原因?DBに...
-
PHP8を使うと、大量のWarningが...
-
.phpと.incファイルの違いはな...
-
社内イントラネットのHPにアク...
-
VBSの「MsgBox」について
-
PHPでFilename cannot be empty...
-
【file_exists】ファイルが存在...
-
PHP MySql ページング
-
別PHPファイルに変数を渡す
-
これの対応OSを教えて下さい。p...
-
Subversionのリポジトリの削除
-
MySQLの配置が変わったため、db...
-
mb_send_mail関数が利用出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPで偶数と奇数を判断するには
-
PHPExcel処理速度が遅い
-
インスタンス化に伴うメモリ消...
-
Cronで同じ処理を複数同時に実...
-
PHPで文字列(日本語)の比較
-
PHPからExcelVBAを制御できます...
-
phpの処理中に画面表示ををする...
-
PHPが処理を途中でやめる。原因...
-
VBAからPHPを実行(キック)したい
-
文字列の10+10を20と表示したい
-
データベースのレコードを入れ...
-
リンクのラベルを取得したい
-
PHP内、ボタン押下と同時にリロ...
-
関数の前にアットマークが付く場合
-
web画面から呼び出したphp処理...
-
PHPの変わった閉じタグの必要性...
-
◆バックエンド処理の終了を知り...
-
PHPから別のHTML(PHP)へリン...
-
チェックボックスをビット演算...
おすすめ情報