概要
閲覧数:1408
投稿日: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] => 大阪 ) )