人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの連想記憶配列(2次元)のソート方法はありませんか?

list[0][’name’]=’hoge’;
list[0][’age’]=18;
list[0][’sex’]=0;
list[1][’name’]=’foo’;
list[1][’age’]=20;
list[1][’sex’]=1;


list[x][’name’]=’...’;
list[x][’age’]=...;
list[x][’sex’]=...;

のような場合に、ageやnameをキーに添え字の0〜xをソートしたいです。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k08.htm
は見ていますが、キー指定の2次元配列のソートは無かったので質問します。

●質問者: P-mako
●カテゴリ:ウェブ制作
✍キーワード:hoge name PHP SEX ソート
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● くまっぷす
●20ポイント

http://jp.php.net/manual/ja/function.array-multisort.php

僕もあまり使ったことがないんで自信なしですが、これ、使えませんか?

◎質問者からの返答

ちょうど自分でも今、同じページを見ていました。

使い方が、ちょっとエラー&トライになりそうですが、使えそうな気はします。

質問の例のケースで意図したとおりにソートできるサンプルを提示いただければ、ポイント多めに配分させていただきます。


2 ● typista
●40ポイント

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

array_multisort

下記のようなソートをすれば上手くいくと思います。

nameでソートしたければ、コメントを外してください。2つのキーでソートしたければ、参考ページのようにarray_multisortに2つのキーを指定することになります。

その場合は、$sort_keyは、$sort_key1、$sort_key2などが良いでしょう。

---

foreach ($list as $key => $row) {

// $sort_key[$key] = $row[’name’];

$sort_key[$key] = $row[’age’];

}

//array_multisort( $sort_key, SORT_DESC, $list );

array_multisort( $sort_key, SORT_ASC, $list );

◎質問者からの返答

なるほど。ソートできました。そういうことだったんですね。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ