データベースから取得した連想配列の特定のカラムを配列化
こんにちは、開発の吉野です!今回はDBから取得した連想配列から特定のカラムを配列化する方法をご紹介したいと思います。
目次はこちら
- 1. カラムを配列化
- 2. 取得する配列に任意のキー名を設定する
- 3. まとめ
カラムを配列化
DBからデータを取得した場合以下の形式でデータが返されることが多いと思います。
$records = [
[‘id’ => ‘1000’, ‘title’ => ‘練習問題’, ‘date’ => ‘2020-04-01’],
[‘id’ => ‘1001’, ‘title’ => ‘基本問題’, ‘date’ => ‘2020-05-10’],
[‘id’ => ‘1002’, ‘title’ => ‘応用問題’, ‘date’ => ‘2020-06-20’],
];
このデータのtitleのみを配列化したい場合は「array_column関数」を使用すると一行で取得することが出来ます!配列の中身は同じですが、断然array_column関数から配列を作り出した方が分かりやすいですね。
// array_column関数で取得
$titleArray = array_column($records, ‘title’);
print_r($titleArray);
// 出力内容
Array ( [0] => 練習問題 [1] => 基本問題 [2] => 応用問題 )
// foreachで取得
$titleArray = [];
foreach($records as $record){
$titleArray[] = $record[‘title’];
}
print_r($titleArray);
// 出力内容
Array ( [0] => 練習問題 [1] => 基本問題 [2] => 応用問題 )
取得する配列に任意のキー名を設定する
array_column関数には他にも使い方があります。array_column() は、 配列 input の中から column_key で指定した単一のカラムの値を返します。 オプションで index_key も指定できます。 これを指定すると、 入力配列内のカラム index_key の値をキーとし、 カラム column_key を値とした配列が返されます。
// idを連想配列のキー名にする
$titleArray = array_column($records, ‘title’, ‘id’);
print_r($titleArray);
// 出力内容
Array ( [1000] => 練習問題 [1001] => 基本問題 [1002] => 応用問題 )
第3引数に$recordsのキー名を設定することで任意のキー名を設定した連想配列を作成することが出来ます。
まとめ
今回はDBから取得した連想配列の特定のカラムを配列化する方法をご紹介させていただきました。
array_column関数を使えば一行で配列化出来るので、ぜひ使ってみてください。