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

配列のソート方法と降順にソートする方法

このQ&Aのポイント
  • 配列のソート方法と降順にソートする方法を教えてください。
  • テーブルからデータを取得し、配列に格納し、pointの降順にソートしたいです。
  • 最終的にAさん、Dさん、Cさん、Bさんの順でソートしたいです。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

array_multisort()を使うとか。こんな感じ: $t[] = array( 'ID'=>1,'name'=>'A','point'=>56,'area'=>'a' ); $t[] = array( 'ID'=>2,'name'=>'B','point'=>12,'area'=>'b' ); $t[] = array( 'ID'=>3,'name'=>'C','point'=>24,'area'=>'b' ); $t[] = array( 'ID'=>4,'name'=>'D','point'=>34,'area'=>'b' ); array_multisort( array_map( create_function( '$a', 'return $a["point"];' ), $t ), SORT_DESC, $t ); print_r( $t );

参考URL:
http://php.s3.to/man/function.array-multisort.html

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> 降順にソート select * from test order by point DESC ――みたいにクエリでソートすれば良いのでは。 > 配列に格納 $table[] = $row; ――みたいに、fetchした配列を、配列に追加して多次元配列にすれば良いのでは。

phptest
質問者

補足

ご回答ありがとうございます。 クエリでソートはできないのです。 取得した後で配列に入れてソートするしかないです。 ちなみに上のソースに追加ですが、クエリでデータを取得して、配列に格納するところは以下のような形にしてみました。ここから後、pointで降順にソートできればいいのですが。。。 for ($j = 0; $j <= 1; $j++) { $count=0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $test[$j][$count]["point"] = $row["point"]; $test[$j][$count]["name"] = $row["name"]; $test[$j][$count]["area"] = $row["area"]; $count = $count + 1; } }

関連するQ&A