php 連想配列の特定のキーの値でソートする

phpで、array_multisortを使用して、連想配列の特定のキーの値でソートするサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
キーの値でソート
以下は、連想配列の特定のキーの値でソートするサンプルコードとなります。
<?php
$arr = [
0 => [ 'id' => 40, 'title' => 'java'],
1 => [ 'id' => 10, 'title' => 'react'],
2 => [ 'id' => 30, 'title' => 'nuxt'],
3 => [ 'id' => 20, 'title' => 'typescript'],
];
array_multisort(array_column($arr, 'id'), SORT_ASC, $arr);
print_r($arr);
実行結果
Array
(
[0] => Array
(
[id] => 10
[title] => react
)
[1] => Array
(
[id] => 20
[title] => typescript
)
[2] => Array
(
[id] => 30
[title] => nuxt
)
[3] => Array
(
[id] => 40
[title] => java
)
)
降順にする場合は「SORT_DESC」に変更します。
array_multisort(array_column($arr, 'id'), SORT_DESC, $arr);
実行結果
Array
(
[0] => Array
(
[id] => 40
[title] => java
)
[1] => Array
(
[id] => 30
[title] => nuxt
)
[2] => Array
(
[id] => 20
[title] => typescript
)
[3] => Array
(
[id] => 10
[title] => react
)
)
別のキーでソートする場合は、キー名を変更します。
array_multisort(array_column($arr, 'title'), SORT_DESC, $arr);
実行結果
Array
(
[0] => Array
(
[id] => 20
[title] => typescript
)
[1] => Array
(
[id] => 10
[title] => react
)
[2] => Array
(
[id] => 30
[title] => nuxt
)
[3] => Array
(
[id] => 40
[title] => java
)
)
-
前の記事
Ruby 割り算の余りを求める 2021.09.27
-
次の記事
javascript lodashを使ってオブジェクトのプロパティ値を関数内で利用する 2021.09.28
コメントを書く