公式マニュアルを見ればいい話なんですが、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が自由自在に使えると配列にめっちゃ強くなれそうですね。
以上。