array_multisortという関数。なんつー便利な言語なんですかね。PHP。多次元配列を指定の値でソートできちゃうんですね。これ、なんというかプログラマーを限りなくバカにするというか、バカでもできるというか、そもそもプログラマーはバカだったというか、びっくりしました。
例えば、ある多次元配列があるとします。この度使ったのは、それそれの配列にデータベースのレコードが入っているというものでした。
さらに複数の要素でソートしたい場合も(この2次元配列では意味がありませんが、)
例えば、ある多次元配列があるとします。この度使ったのは、それそれの配列にデータベースのレコードが入っているというものでした。
$listという2次元配列だったとして、こんな具合の配列の、これらを["number"]のところでソートしたいとします。直感的にはメルセデス、フォルクスワーゲン、アウディーでソートしたいという感じです。こういう場合には、array_multisortという便利な関数があるんです。
array {
[0] = array {
["number"] = 4
["name"] = メルセデス
}
[1] = array {
["number"] = 22
["name"] = アウディー
}
[2] = array {
["number"] = 7
["name"] = フォルクスワーゲン
}
}
foreach ( $list as $key => $record){こんな具合です。これでnumberのところでソートされます。かなり簡単。バブルソートとか自分で実装しないとダメかと思ったけど大丈夫でした。
$number[$key] = $record["number"];
}
array_multisort($temp, SORT_DESC, SORT_NUMERIC, $list);
さらに複数の要素でソートしたい場合も(この2次元配列では意味がありませんが、)
foreach ( $list as $key => $record){とかいう風に連続してソートがかけられます。これ便利ですね。でも何故だかあんまりメジャーじゃないです。
$number[$key] = $record["number"];
$name[$key] = $record["name"];
}
array_multisort($temp, SORT_DESC, $list);



