PHP:超便利 array_column()
業務でDBから取得した連想配列を特定のカラムの値だけを配列で使用したいときに、今まではforeachでループを回して処理を自分で書いていました。
めんどくささを感じて少し調べてみたところ見事に組み込み関数で望み通りのものがありました。
それがarray_columnです。
$array = [ 0 => ['hoge' => 'hoge1', 'huga' => 'huga1'] ,1 => ['hoge' => 'hoge2', 'huga' => 'huga2'] ,2 => ['hoge' => 'hoge3', 'huga' => 'huga3'] ];
このような連想配列に対して、キーが「hoge」の値のみを取り出した場合にarray_columnが非常に有効になります。
array_columnの基本的な使い方は、第1引数に対象となる配列、第2引数に取り出したいキーの値です。
こんなかんじです。
$result = array_column($array, 'hoge');
var_export($result)を使用した出力がこちらです。
array ( 0 => 'hoge1', 1 => 'hoge2', 2 => 'hoge3', )
また、オプションの第3引数を指定することで連想配列のキーを指定することができます。今回の例で言うと
$result = array_column($array, 'hoge', 'huga' )
このように第3引数に「huga」を設定することで
array ( 'huga1' => 'hoge1', 'huga2' => 'hoge2', 'huga3' => 'hoge3', )
という結果を得ることができます。