• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2次元配列のソート)

2次元配列のデータをソートする方法

このQ&Aのポイント
  • 2次元配列のデータをソートする方法がわからない
  • データの項目(商品コード、商品名など)数は固定で、データ数や内容は変化する
  • array_multisort関数は使えないので、別の方法を教えてほしい

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答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" ; }

Masa333
質問者

お礼

お礼が遅くなって済みませんでした。 回答ありがとうございます。 2次元配列をソートする関数のようなものはないのですね。 回答いただいたロジックを用いてソートができるようになりました。 アルゴリズムはあまり理解していなかったので、これを機に勉強したいと思います。 ありがとうございました。

その他の回答 (1)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

まず基本的なアルゴリズムとかを覚えたほうが良いと思いますよ。 ソートは クイックソート バブルソート などが有名なアルゴリズムですね。 これらを踏まえて、PHPに置き換えれば良いですね。