しろあじ備忘録

システム関係の備忘録。ザルのような記憶力なので、こうして書いておかないと忘れるのだよ。

【PHP】多次元配列で特定のキーの値を知りたい

後で使うための作業メモ 
ここに書く array_column はPHP5.5以降なので、今回自作プログラムでようやく使える。。。


イメージはこんな感じの配列

f:id:ramapipi:20171010211353p:plain

配列で表すならば

<?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',
)
となる。



参考元↓
PHP: array_column - Manual