Home > PHP > 多次元配列をソートする(PHP)

多次元配列をソートする(PHP)

PHPメモ。

1次元配列のソートは「asort」などで可能ですが、多次元配列の場合、「array_multisort」を使用します。

例:たとえば、次の多次元配列があった場合を考える。

$data = array(
[0] => array(
"foo" => 10,
"bar" => 5,
"hoge" => 7
),
[1] => array(
"foo" => 8,
"bar" => 6,
"hoge" => 1
),
[2] => array(
"foo" => 10,
"bar" => 5,
"hoge" => 7
)
);

たとえば、列「foo」の値でソートしたい場合、

foreach($data as $key => $row){
$foo[$key] = $row["foo"];
}

array_multisort($foo,SORT_DESC,$data);

となる。

さらに、「foo」をソートし、さらに「bar」をソートし、さらには「hoge」でソートしたい場合は、以下のようになる。

foreach($data as $key => $row){
$foo[$key] = $row["foo"];
$bar[$key] = $row["bar"];
$hoge[$key] = $row["hoge"];
}

array_multisort($foo,SORT_DESC,$bar,SORT_DESC,$hoge,SORT_DESC,$data);

う~ん、便利な関数があるもんですね。

関連記事

Sponsored Link

Google+

facebook

zenback

Comments:2

tanaka8 2010/12/16

多次元配列の操作でつまづいてましたが
こちらで解消しました。
ありがとうございます。

showBOO 2010/12/17

>tanaka8さん
参考になれば幸いです。

Comment Form
Remember personal info

Trackbacks:5

Trackback URL for this entry
http://www.multiburst.net/sometime-php/2008/05/php_1/trackback/
Listed below are links to weblogs that reference
多次元配列をソートする(PHP) from Sometime PHP
pingback - Ai Dream – Web System Japan » [PHP] 多次元配列をソートする より 2009/08/06

[...] こちらのサイトを参照 カテゴリー: 未分類 タグ: 閲覧回数 9 回 コメント (0) トラックバック (0) コメントをどうぞ トラックバックURL [...]

trackback - masomi79の日記 より 2009/11/25

[PHP]多次元配列のソート。 ディレクトリの中身を array_multisort を使ってソートする

配列の初期化 $dirlist = array(); $udate = array();  ディレクトリ内のファイル名を取得して$strDirに格納             $filedir = ディレクトリ名; $strDir = opendir($filedir)or die(”couldnt open …

pingback - PHPで二次元や多次元配列のソート - adbon.net より 2010/06/28

[...] http://www.multiburst.net/sometime-php/2008/05/php_1/ [...]

pingback - PHPで多次元配列をソートする関数 - TANAKAORIGINAL より 2011/01/10

[...] 多次元配列をソートする(PHP) [...]

pingback - 2009年の当ブログ・人気記事 - Sometime PHP より 2011/05/21

[...] 5. 多次元配列をソートする(PHP) [...]

Additional comments powered by BackType

Home > PHP > 多次元配列をソートする(PHP)

Subscribe This Blog
Subscribe This Blog
FeedBurner

Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs
Affiliate Blogs
Translator
Japanese flagEnglish flag

Return to page top