$db = new PDO(
'mysql:dbname=test',
'root',
'root',
[
PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
]
);
$res = $db->query('SELECT game_id, party_id, user_id, point FROM results ORDER BY game_id, party_id');
$results = [];
foreach ($res as $row) {
if (!isset($results[$row->game_id])) {
$results[$row->game_id] = [
'game' => $row->game_id,
'parties' => []
];
}
if (!isset($results[$row->game_id]['parties'][$row->party_id])) {
$results[$row->game_id]['parties'][$row->party_id] = [
'party' => $row->party_id,
'users' => []
];
}
$results[$row->game_id]['parties'][$row->party_id]['users'][$row->user_id] = [
'user' => $row->user_id,
'point' => $row->point
];
}