【PHP】入力配列の中から指定したキーのみを抽出する。

PHP5.5より実装。

下記のような連想配列があったとする。

$array = [
	[
		'id' => 1,
		'key' => 3352,
		'name' => 'hoge',
		'email' => 'hoge@example.com'
	],
	[
		'id' => 2,
		'key' => 2265,
		'name' => 'fuga',
		'email' => 'fuga@example.com'
	],
	[
		'id' => 3,
		'key' => 7311,
		'name' => 'piyo',
		'email' => 'piyo@example.com'
	]
];

上記連想配列中の「email」要素のみを取り出したい場合、array_column()を用いると便利。

$emails = array_column($array, 'email');

var_dump($emails);

↓

array(3) {
  [0]=>
  string(16) "hoge@example.com"
  [1]=>
  string(16) "fuga@example.com"
  [2]=>
  string(16) "piyo@example.com"
}

また、第3引数にも入力配列中の要素を指定することで結果配列のキーに指定した要素の値を挿入してくれる。

$emails = array_column($array, 'email', 'key');

var_dump($emails);

↓

array(3) {
  [3352]=>
  string(16) "hoge@example.com"
  [2265]=>
  string(16) "fuga@example.com"
  [7311]=>
  string(16) "piyo@example.com"
}