勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPで多次元連想配列のキーを指定してソートする方法

   2026/10/02  PHP

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

https://www.php.net/manual/ja/function.array-multisort.php

 - PHP

  関連記事

PHPMailerでエンベロープFrom(Return-Path)を指定する方法
PHPMailerでエンベロープFrom(Return-Path)を指定する方法

同じメールアドレスから送信したメールがmb_send_mail関数だと受信できる ...

PHPで特定のサイトからのリクエストのみ受け付けて処理する方法
PHPで特定のサイトからのリクエストのみ受け付けて処理する方法

指定したサイトからのリクエストのみ受け付けて処理したいという状況があった。その他 ...

AjaxのJSONP使用でPHPで作った配列をJSに返す方法
AjaxのJSONP使用でPHPで作った配列をJSに返す方法

AというサイトからBというサイトにAjax通信し、Bの方ではMySQLに接続して ...

PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法

迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...

PHPでCookie保存時にSameSite属性を設定する方法
PHPでCookie保存時にSameSite属性を設定する方法

あるシステムのセキュリティ対策としてCookie保存時にSameSite属性をS ...