【PHP】多次元配列で特定のキーの値を知りたい
後で使うための作業メモ
ここに書く array_column はPHP5.5以降なので、今回自作プログラムでようやく使える。。。
イメージはこんな感じの配列
配列で表すならば
<?php $list = [ 0 => [ 'id' => 1, 'name' => 'AAA', 'comment' => ''], 1 => [ 'id' => 2, 'name' => 'BBB', 'comment' => 'コメント1'], 2 => [ 'id' => 3, 'name' => 'CCC', 'comment' => '' ], 3 => [ 'id' => 4, 'name' => 'DDD', 'comment' => 'コメント2' ], ]; ?>
comeentの値だけ知りたい。
array_column()でオッケー
<?php $list = [ 0 => [ 'id' => 1, 'name' => 'AAA', 'comment' => ''], 1 => [ 'id' => 2, 'name' => 'BBB', 'comment' => 'コメント1'], 2 => [ 'id' => 3, 'name' => 'CCC', 'comment' => '' ], 3 => [ 'id' => 4, 'name' => 'DDD', 'comment' => 'コメント2' ], ]; $list_comment = array_column($list, 'comment'); ?>
すると、$list_commentは、
array (
0 => '',
1 => 'コメント1',
2 => '',
3 => 'コメント2',
)
となる。
array_column()の第3引数も使える
array_column()で第3引数を指定することで、返す結果配列のキーを指定することができる。
<?php $list = [ 0 => [ 'id' => 1, 'name' => 'AAA', 'comment' => ''], 1 => [ 'id' => 2, 'name' => 'BBB', 'comment' => 'コメント1'], 2 => [ 'id' => 3, 'name' => 'CCC', 'comment' => '' ], 3 => [ 'id' => 4, 'name' => 'DDD', 'comment' => 'コメント2' ], ]; $list_comment = array_column($list, 'comment','name'); ?>
すると、$list_commentは、
array (
'AAA' => '',
'BBB' => 'コメント1',
'CCC' => '',
'DDD' => 'コメント2',
)
となる。