多次元連想配列のソート

 

 

 

 

array_multisort

 

f:id:sinya0228:20201206100045p:plain

 

配列のソートではなくて、多次元連想配列だった場合のソート方法です。

以下のような配列があったとします。

 

$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」を指定すると、降順になります