普通のPHPerなら知ってて当然かもしれないので自分用の覚え書き。
ユーザー情報等のデータベースを扱うことがよくあって、FETCH_ASSOC|FETCH_UNIQUE
なんかでデータを取り出すと
print_r($alldata);
/*
Array
(
[1] => Array
(
[id] => 1
[account] => suzuki
[sei] => 鈴木
[mei] => 一郎
[seikana] => すずき
[meikana] => いちろう
)
[3] => Array
(
[id] = 3
[account] => tanaka
[sei] => 田中
[mei] => 次郎
[seikana] => たなか
[meikana] => じろう
)
[10] => Array
(
[id] => 10
[account] => sato
[sei] => 佐藤
[mei] => 花子
[seikana] => さとう
[meikana] => はなこ
)
)
*/
こんなふうになってて、この中から'account'
のリストを取り出したい、というとき。
//BEFORE array_column
foreach (array_values($alldata) as $v) {
$accounts[] = $v['account'];
}
print_r($accounts);
/*
Array
(
[0] => suzuki
[1] => tanaka
[2] => sato
)
*/
// $accountsのキーをidにしたいとき
foreach (array_values($alldata) as $v) {
$accounts[$v['id']] = $v['account'];
}
print_r($accounts);
/*
Array
(
[1] => suzuki
[3] => tanaka
[10] => sato
)
*/
といった感じだったのが、array_column
を使うと
//AFTER array_column
$accounts = array_column($alldata, 'account');
print_r($accounts);
//略
// $accountsのキーをidにしたいとき
$accounts = array_column($alldata, 'account', 'id');
print_r($accounts);
//略
と簡単。
3次元配列の場合は追って調べて書く。