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
関連記事
-
-
PHPMailerでエンベロープFrom(Return-Path)を指定する方法
同じメールアドレスから送信したメールがmb_send_mail関数だと受信できる ...
-
-
PHPで特定のサイトからのリクエストのみ受け付けて処理する方法
指定したサイトからのリクエストのみ受け付けて処理したいという状況があった。その他 ...
-
-
AjaxのJSONP使用でPHPで作った配列をJSに返す方法
AというサイトからBというサイトにAjax通信し、Bの方ではMySQLに接続して ...
-
-
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...
-
-
PHPでCookie保存時にSameSite属性を設定する方法
あるシステムのセキュリティ対策としてCookie保存時にSameSite属性をS ...