概要
閲覧数:1758
投稿日:2016-06-27
更新日:2016-06-27
stdClassで、指摘キー毎の数をカウント後、新たなキーとして追加
☆処理内容
・area毎に名寄せ
・areaの値毎の数をカウントして、countキーとして追加
・user_idキーは不要なので削除
☆処理の流れ
・array_column()第1引数で指定した配列 users の中から array_column()第2引数で指定したarea で指定したカラム値を返す
・array_count_values()で、配列の値の数を数える
コード
$users[] = (object)['user_id' => 'a','area' => '東京',];
$users[] = (object)['user_id' => 'b','area' => '大阪',];
$users[] = (object)['user_id' => 'c','area' => '大阪',];
print_r($users);
$tmp = array_count_values(array_column($users, 'area'));
//中間結果表示
print_r($tmp);
$result = array();
foreach ($tmp as $area => $num) {
$result[] = (object) array(
'count' => $num,
'area' => $area
);
}
//結果表示
print_r($result);
結果
Array
(
[0] => stdClass Object
(
[user_id] => a
[area] => 東京
)
[1] => stdClass Object
(
[user_id] => b
[area] => 大阪
)
[2] => stdClass Object
(
[user_id] => c
[area] => 大阪
)
)
Array
(
[東京] => 1
[大阪] => 2
)
Array
(
[0] => stdClass Object
(
[count] => 1
[area] => 東京
)
[1] => stdClass Object
(
[count] => 2
[area] => 大阪
)
)