PHP array_multisortの例文

array_multisortは、PHPで配列のソートを行う関数。
良く使うので使い方をメモ。

例えば下記のような配列$bookmarksがあったとして、

Array
(
 [0] => Array
        (
         [id] => 001
         [title] => Amazon
         [url] => http://amazon.co.jp/
         [category] => 買物
        )
 [1] => Array
        (
         [id] => 002
         [title] => Google
         [url] => http://google.co.jp/
         [category] => 検索
        )
 [2] => Array
        (
         [id] => 003
         [title] => Yahoo!Japan
         [url] => http://yahoo.co.jp/
         [category] => 検索
        )
)

titleで昇順に並べ替える場合は以下のように書く。

foreach ($bookmarks as $key => $value){
  $key_title[$key] = $value[title];
}
array_multisort( $key_title,SORT_ASC, $bookmarks );

categoryで降順に並べ替えた後、さらにtitleで昇順に並べ替えたい場合。

foreach ($bookmarks as $key => $value){
  $key_title[$key] = $value[title];
  $key_category[$key] = $value[category];
}
array_multisort( 
  $key_category,SORT_DESC,
  $key_title,SORT_ASC,
  $bookmarks
);

 

トラックバック(0)

このブログ記事へのトラックバックURL:
http://1000leaf.net/MT41/mt-tb.cgi/113