
2次元配列のデータをソートしたいのですが方法がわかりません。初歩的な質問ですが、ご存知の方、よろしくお願いいたします。
(例)
商品コード、商品名、金額、有効期限のデータを以下のように持っています。
$data[0] = ("001", "商品A", 5200, "2004/5");
$data[1] = ("002", "商品B", 350, "2005/1");
$data[2] = ("003", "商品C", 10800, "2004/3");
・・・・
データの項目(商品コード、商品名など)数は固定ですが、データ数、内容は変化します。
2次元配列でデータがあり、商品コードで降順にソート、金額で昇順にソートなどのソートを行う方法はありますか?
No.760468 で同じような質問があり、array_multisort
が回答としてあがっていましたが、上記データの場合ソートできないようなので質問させていただきました。
なお、環境によりデータベースを使用することはできません。
No.2ベストアンサー
- 回答日時:
例えば、金額での昇順ソート
$data_max = 1000 ; //データの個数
$s = 2 ; // 3番目の金額なので
for ($i=0 ;$i<$data_max ;$i++){
$sort[$i] = $i ;
}
for ($i=0 ;$i<$data_max-1 ;$i++){
for ($j=0 ;$j<$data_max ;$j++){
if ( $data[$sort[$i]][$s] > $data[$sort[$j]][$s] ){
// このifの判定をいじれば昇順降順などを操作できます
$k = $sort[$i] ;
$sort[$i] = $sort[$j] ;
$sort[$j] = $k ;
}
print "$data[sort[$i]][0] $data[sort[$i]][1] $data[sort[$i]][2] $data[sort[$i]][3]\n" ;
}
お礼が遅くなって済みませんでした。
回答ありがとうございます。
2次元配列をソートする関数のようなものはないのですね。
回答いただいたロジックを用いてソートができるようになりました。
アルゴリズムはあまり理解していなかったので、これを機に勉強したいと思います。
ありがとうございました。
No.1
- 回答日時:
まず基本的なアルゴリズムとかを覚えたほうが良いと思いますよ。
ソートは
クイックソート
バブルソート
などが有名なアルゴリズムですね。
これらを踏まえて、PHPに置き換えれば良いですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excel マクロでグループ内でソートしたい。見出しが上手くいきません。 7 2022/05/22 08:31
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
While文を使って配列の中身を全...
-
行数が30万件ほどあるCSVから、...
-
PHP 引数渡しの文字化けについて
-
PHPでCSVの一部の行を編集したい
-
C言語でCSVファイルの行数を読...
-
CSVでアップロードしたデータの...
-
PHPからファイルをPOSTしたい
-
php Undefined variableエラー
-
CSVデータの行数カウントをした...
-
オブジェクトと文字列の比較
-
PHPで外部ファイルを読み込むと...
-
PHP:2つの置換文字列を一気に...
-
文字列変換について
-
特定部分を書き換え、他は現状...
-
PHP、CSVファイルの日本語デー...
-
バイナリファイルの内容を、そ...
-
UTF-8のXMLがSJISのPHPで文字化け
-
PHPでの正規表現を使った文字列...
-
2次元配列のソート
-
PHPでサーバー上の書き換えたht...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
C言語でCSVファイルの行数を読...
-
Resource id #3 と表示されま...
-
【PHP】csvファイルへの書き出...
-
CSVファイルの最終行のデー...
-
行数が30万件ほどあるCSVから、...
-
自動で番号を振りたい
-
doxygenを使用する環境について
-
PHP検索ボックス複数設置
-
stdClass Objectを連想配列のよ...
-
ヒアドキュメントの中のfor文
-
PHP SimpleXml unsetについて
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
PHPでCSVの一部の行を編集したい
-
ログファイルの古い日付の行を...
-
配列同士の足し算のループ処理
-
多次元配列の一次元目の最大値...
-
文字列の文字一文字ずつを解析...
-
複数ファイルで、それぞれの行...
おすすめ情報