- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列のソート)
配列のソート方法と降順にソートする方法
このQ&Aのポイント
- 配列のソート方法と降順にソートする方法を教えてください。
- テーブルからデータを取得し、配列に格納し、pointの降順にソートしたいです。
- 最終的にAさん、Dさん、Cさん、Bさんの順でソートしたいです。
- みんなの回答 (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 );
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
> 降順にソート select * from test order by point DESC ――みたいにクエリでソートすれば良いのでは。 > 配列に格納 $table[] = $row; ――みたいに、fetchした配列を、配列に追加して多次元配列にすれば良いのでは。
補足
ご回答ありがとうございます。 クエリでソートはできないのです。 取得した後で配列に入れてソートするしかないです。 ちなみに上のソースに追加ですが、クエリでデータを取得して、配列に格納するところは以下のような形にしてみました。ここから後、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; } }