カテゴリー
未分類

array_columnで多次元配列の特定のキー一覧を取り出す

以下のような多次元配列の特定のキーを取り出してきてもう一個配列作れるみたいな? array_mapとか使って同じようなことできるけど、PHPにはarray_columnがあるのでこれを使った方が読みやすいな。

<?php
$result = [
[
'hoge1' => 'a1',
'hoge2' => 'a2',
'hoge3' => 'a3'
],
[
'hoge1' => 'b1',
'hoge2' => 'b2',
'hoge3' => 'b3'
],
[
'hoge1' => 'c1',
'hoge2' => 'c2',
'hoge3' => 'c3'
]
];
$test1 = array_map(function($array) {
return $array['hoge2'];
}, $result);
$test2 = array_column($result, 'hoge2');
print_r($test1);
print_r($test2);
echo "----------\n";
$result2 = [
'line1' => [
'hoge1' => 'a1',
'hoge2' => 'a2',
'hoge3' => 'a3'
],
'line2' => [
'hoge1' => 'b1',
'hoge2' => 'b2',
'hoge3' => 'b3'
],
'line3' => [
'hoge1' => 'c1',
'hoge2' => 'c2',
'hoge3' => 'c3'
]
];
$test3 = array_map(function($array) {
return $array['hoge2'];
}, $result2);
$test4 = array_column($result2, 'hoge2');
print_r($test3);
print_r($test4);
echo "----------\n";
$result3 = [
5 => [
'hoge1' => 'a1',
'hoge2' => 'a2',
'hoge3' => 'a3'
],
7 => [
'hoge1' => 'b1',
'hoge2' => 'b2',
'hoge3' => 'b3'
],
9 => [
'hoge1' => 'c1',
'hoge2' => 'c2',
'hoge3' => 'c3'
]
];
$test5 = array_map(function($array) {
return $array['hoge2'];
}, $result3);
$test6 = array_column($result3, 'hoge2');
print_r($test5);
print_r($test6);

とりあえずキーはリセットされる。でも設定でキーにするものを指定することもできる。とりあえずデフォルトの動作を確認したかった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA