array_column() - 多次元配列から特定カラムの配列を作る
公開日:
array_column
は、多次元配列から、特定のカラムだけで構成された新しい配列を返す関数です。
構文
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
パラメータ
$input
対象の多次元配列。7以降ではオブジェクトにも対応。
$column_key
キー名を指定。null
を指定した場合は配列全体を返す。第3引数と組み合わせると意味がある。
$index_key
初期値: null
キー名を指定すると、その値が、新しい配列の各要素のキー名となる。
返り値
array
指定したカラムで構成された新しい配列。
サンプルコード
特定のカラムを抜き出す
例えば、下記の多次元配列からscore
だけで構成された配列を作成してみます。第2引数に対象となるカラムのキー名を指定します。
php
<?php
// 配列
$queue = [
[
"date" => "2015/11/1" ,
"score" => 100 ,
"color" => "red" ,
] ,
[
"date" => "2015/11/2" ,
"score" => 75 ,
"color" => "blue" ,
] ,
[
"date" => "2015/11/3" ,
"score" => 90 ,
"color" => "green" ,
] ,
] ;
// 実行
$result = array_column( $queue, "score" ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[0] => 100
[1] => 75
[2] => 90
)
新しい配列のキー名を指定する
先ほどと同じ多次元配列を対象に、今度は、第3引数でキー名となるカラムを指定しました。
php
<?php
// 配列
$queue = [
[
"date" => "2015/11/1" ,
"score" => 100 ,
"color" => "red" ,
] ,
[
"date" => "2015/11/2" ,
"score" => 75 ,
"color" => "blue" ,
] ,
[
"date" => "2015/11/3" ,
"score" => 90 ,
"color" => "green" ,
] ,
] ;
// 実行
$result = array_column( $queue, "score", "date" ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[2015/11/1] => 100
[2015/11/2] => 75
[2015/11/3] => 90
)
多次元配列にキー名を付ける
第2引数にnull
を指定すると、配列をそのまま返します。それだけだと意味がありませんが、第3引数でキー名を指定すれば、その値を各要素のキー名として設定できます。
php
<?php
// 配列
$queue = [
[
"date" => "2015/11/1" ,
"score" => 100 ,
"color" => "red" ,
] ,
[
"date" => "2015/11/2" ,
"score" => 75 ,
"color" => "blue" ,
] ,
[
"date" => "2015/11/3" ,
"score" => 90 ,
"color" => "green" ,
] ,
] ;
// 実行
$result = array_column( $queue, NULL, "date" ) ;
// 返り値
print_r( $result ) ;
結果 (出力内容) - PHP7.0.21
Array
(
[2015/11/1] => Array
(
[date] => 2015/11/1
[score] => 100
[color] => red
)
[2015/11/2] => Array
(
[date] => 2015/11/2
[score] => 75
[color] => blue
)
[2015/11/3] => Array
(
[date] => 2015/11/3
[score] => 90
[color] => green
)
)
サンドボックス
ソースコードを編集してarray_column()
の挙動を確認して下さい。
参考リンク
- PHP - 公式マニュアル。