getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder(); $res = $queryBuilder ->select('uid', 'name') ->from('tx_watten_domain_model_athleten') ->execute(); $user = []; foreach ($res as $key => $value) { $user[$value['uid']] = $value['name']; } $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder(); if ($activeTournament < 0) { $ergebnisse = $queryBuilder ->select('s1', 's2', 'v1', 'v2', 'gstrichen') ->from('tx_watten_domain_model_ergebnisse') ->execute(); } else { $ergebnisse = $queryBuilder ->select('s1', 's2', 'v1', 'v2', 'gstrichen') ->from('tx_watten_domain_model_ergebnisse') ->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament)) ->execute(); } $arr = []; foreach ($ergebnisse as $key => $value) { $s1 = $value['s1']; $s2 = $value['s2']; $v1 = $value['v1']; $v2 = $value['v2']; $gs = $value['gstrichen']; if (!isset($arr[$s1]['s'])) { $arr[$s1]['s'] = 0; $arr[$s1]['v'] = 0; } if (!isset($arr[$s2]['s'])) { $arr[$s2]['s'] = 0; $arr[$s2]['v'] = 0; } if (!isset($arr[$v1]['v'])) { $arr[$v1]['v'] = 0; $arr[$v1]['s'] = 0; } if (!isset($arrv[$v2]['v'])) { $arr[$v2]['v'] = 0; $arr[$v2]['s'] = 0; } if ($gs) { $arr[$s1]['s']++; $arr[$s2]['s']++; $arr[$v1]['v']++; $arr[$v2]['v']++; } } $sieger = []; $verlierer = []; $i = 1; foreach ($arr as $userid => $value) { $sieger[$i]['sieger'] = $user[$userid]; $sieger[$i]['gewonnen'] = $value['s']; $verlierer[$i]['verlierer'] = $user[$userid]; $verlierer[$i]['verloren'] = $value['v']; $i++; } $gewonnen = array_column($sieger, 'gewonnen'); array_multisort($gewonnen, SORT_NUMERIC, SORT_DESC, $sieger); $verloren = array_column($verlierer, 'verloren'); array_multisort($verloren, SORT_NUMERIC, SORT_DESC, $verlierer); $return = []; $s = 0; $v = 0; foreach ($gewonnen as $key => $value) { $return[$key] = array_merge($sieger[$key], $verlierer[$key]); $return[$key]['platz'] = $key + 1; if ($return[$key]['gewonnen'] == 0) { $return[$key]['sieger'] = ''; $return[$key]['gewonnen'] = ''; $s = 1; } if ($return[$key]['verloren'] == 0) { $return[$key]['verloren'] = ''; $return[$key]['verlierer'] = ''; $v = 1; } if ($s and $v) { unset($return[$key]); } } return $return; } }