[PHP] 多次元配列から特定のキーの値だけを抽出する

作成日: 2026年07月18日

PHP の array_column 関数を使用すると、多次元配列から指定したキーの値だけを配列として抽出することができます。

<?php

$users = [
    ['id' => 101, 'name' => 'Taro', 'role' => 'admin'],
    ['id' => 102, 'name' => 'Jiro', 'role' => 'user'],
    ['id' => 103, 'name' => 'Saburo', 'role' => 'user'],
];

// 'name' キーの値だけを抽出
$names = array_column($users, 'name');

var_dump($names);

実行結果は下記のとおりです。

array(3) {
  [0]=>
  string(4) "Taro"
  [1]=>
  string(4) "Jiro"
  [2]=>
  string(6) "Saburo"
}

抽出後の配列のキー(インデックス)を指定する

array_column 関数の第 3 引数にキー名を渡すと、抽出後の配列のインデックスとしてそのカラムの値を使用することができます。

<?php

$users = [
    ['id' => 101, 'name' => 'Taro', 'role' => 'admin'],
    ['id' => 102, 'name' => 'Jiro', 'role' => 'user'],
    ['id' => 103, 'name' => 'Saburo', 'role' => 'user'],
];

// 'name' の値を抽出し、配列のキーには 'id' の値を使用する
$names_indexed_by_id = array_column($users, 'name', 'id');

var_dump($names_indexed_by_id);

実行結果は下記のとおりです。

array(3) {
  [101]=>
  string(4) "Taro"
  [102]=>
  string(4) "Jiro"
  [103]=>
  string(6) "Saburo"
}
PHP