2008年5月 1日

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

Category : 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);

 

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

 

関連商品

トラックバックURL

このエントリーのトラックバックURL:
http://www.multiburst.net/cgi-bin/mt-cgi/mt-tb.cgi/12200

コメントする