BLOG ENTRY

多次元配列のソート(array_multisort)について[PHP]

php

公式マニュアルを見ればいい話なんですが、phpで多次元配列のソートについてのtechメモ。

こんな感じの多次元配列で、例えばdateでソートしたい場合。

$multiDimeArr = array(
    [0] => array(
        "date" => 20080104,
        "name" => slipknot,
        "age" => 12
    ),
    [1] => array(
        "date" => 20081021,
        "name" => limpbizkit,
        "age" => 56
    ),
    [2] => array(
        "date" => 20070703,
        "name" => korn,
        "age" => 42
    )
);

あるキーの値でソートする

列「date」の値でソートする場合

foreach($multiDimeArr as $key => $row){
    $date[$key] = $row["date"];
}

array_multisort($date, SORT_DESC, $multiDimeArr);

複数のキーの値でソートする

まず「name」でソートし、
次に「age」でソートし、
さらに「date」でソートしたい場合

foreach($multiDimeArr as $key => $row){
    $name[$key]  = $row["name"];
    $age[$key]  = $row["age"];
    $date[$key] = $row["date"];
}

array_multisort($name, SORT_DESC, $age, SORT_DESC, $date, SORT_DESC, $multiDimeArr);

array_multisortが自由自在に使えると配列にめっちゃ強くなれそうですね。

以上。

関連記事

  1. 外部複数ブログのRSS情報をWordPress上で表示する[WordPress]
  2. CakePHP1.2上で外部サイトのRSSを取得&表示[CakePHP]
  3. $_SERVER['PATH_INFO']でやる擬似rewrite[PHP]
  4. 何日後、何ヵ月後、何年後、何日前、何ヶ月前、何年前の日付を算出する[PHP]
  5. ページの短縮URLを貼り付けたTwitter投稿をしてもらう
  • name:masomi79
  • date:2009/11/19
  • 参考にさせていただきました。ありがとうございま~す。

  • type:コメント [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU