PHPで多次元連想配列のキーを指定してソートする方法
2026/10/02
PHPで多次元配列から指定したキーでソート(並べ替え)したい。以下に対応方法をメモ。
対応方法
ソースコード
$data = [ [ 'id' => 4, 'name' => '田中', ], [ 'id' => 1, 'name' => '鈴木', ], [ 'id' => 2, 'name' => '山田', ], [ 'id' => 3, 'name' => '佐々木', ], ]; var_dump($data); $idList = array_column($data, 'id'); array_multisort($idList, SORT_ASC, $data); var_dump($data);
出力結果
# ソート前
array(4) {
[0]=>
array(2) {
["id"]=>
int(4)
["name"]=>
string(6) "田中"
}
[1]=>
array(2) {
["id"]=>
int(1)
["name"]=>
string(6) "鈴木"
}
[2]=>
array(2) {
["id"]=>
int(2)
["name"]=>
string(6) "山田"
}
[3]=>
array(2) {
["id"]=>
int(3)
["name"]=>
string(9) "佐々木"
}
}
# ソート後
array(4) {
[0]=>
array(2) {
["id"]=>
int(1)
["name"]=>
string(6) "鈴木"
}
[1]=>
array(2) {
["id"]=>
int(2)
["name"]=>
string(6) "山田"
}
[2]=>
array(2) {
["id"]=>
int(3)
["name"]=>
string(9) "佐々木"
}
[3]=>
array(2) {
["id"]=>
int(4)
["name"]=>
string(6) "田中"
}
}
リファレンス
array_column
https://www.php.net/manual/ja/function.array-column.php
array_multisort
関連記事
-
-
MySQLでIPを整数値としてカラムに格納する
MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...
-
-
PHPで配列データをCSVとしてダウンロードさせる方法
PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...
-
-
PHP7.4でAPCuとOPcacheをインストールする方法
先日本ブログのサーバをCentOS6系から7系に移行し、その際にMySQLのバー ...
-
-
PHPでbool値(true / false)を文字列として出力する方法
PHPにてbool値(true / false)をechoで出力するとtrueは ...
-
-
Fatal error: Cannot redeclare 関数名のエラー
PHPにて「Fatal error: Cannot redeclare 【関数名 ...