BLOG ENTRY

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

php

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

こんな感じの多次元配列で、例えばdateでソートしたい場合。
[php]
$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
)
);
[/php]

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

列「date」の値でソートする場合
[php]
foreach($multiDimeArr as $key => $row){
$date[$key] = $row["date"];
}

array_multisort($date, SORT_DESC, $multiDimeArr);
[/php]

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

まず「name」でソートし、
次に「age」でソートし、
さらに「date」でソートしたい場合
[php]
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);
[/php]

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

以上。

  • name:masomi79
  • date:2009/11/19
  • 参考にさせていただきました。ありがとうございま~す。

  • type:コメント [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU

    veltica creative of twitter