多次元連想配列のソート
array_multisort
配列のソートではなくて、多次元連想配列だった場合のソート方法です。
以下のような配列があったとします。
$array = array(
array(
'name' => "apple",
'num' => 7,
),
array(
'name' => "banana",
'track_num' => 1,
),
array(
'name' => "orange",
'num' => 3,
),
array(
'name' => "berry",
'num' => 10,
),
);
この配列をソートしたい場合以下のように書くことが出来ます。
-例-
foreach ((array) $array as $key => $value) {
$sort[$key] = $value['num'];
}
array_multisort($sort, SORT_ASC, $array);
print_r($array);
-結果-
Array
(
[0] => Array
(
[name] => banana
[num] => 1
)
[1] => Array
(
[name] => orange
[num] => 3
)
[2] => Array
(
[name] => apple
[num] => 7
)
[3] => Array
(
[name] => berry
[num] => 10
)
)
「SORT_ASC」を指定すると、昇順に。
「SORT_DESC」を指定すると、降順になります