$server, 'admins' => array_values($serverAdmins) ]; /* ------------------------------------------------------------------------ Construction de la vue inverse : admin -> serveurs ------------------------------------------------------------------------ */ foreach ($serverAdmins as $admin) { $key = strtolower($admin); if (!isset($admins[$key])) { $admins[$key] = [ 'name' => $admin, 'servers' => [] ]; } /* * Tableau associatif pour éviter les doublons de serveurs. */ $admins[$key]['servers'][strtolower($server)] = $server; } } /* ============================================================================ Tri des serveurs ========================================================================== */ usort($servers, function ($a, $b) { return strnatcasecmp( $a['server'], $b['server'] ); }); /* ============================================================================ Tri des admins et de leurs serveurs ========================================================================== */ foreach ($admins as &$admin) { natcasesort($admin['servers']); $admin['servers'] = array_values($admin['servers']); } unset($admin); uasort($admins, function ($a, $b) { return strnatcasecmp( $a['name'], $b['name'] ); }); /* ============================================================================ Compteurs ========================================================================== */ $totalServers = count($servers); $totalAdmins = count($admins); /* * Nombre total d'affectations : * * 1 admin sur 10 serveurs = 10 affectations. */ $totalAssignments = 0; foreach ($admins as $admin) { $totalAssignments += count($admin['servers']); } /* ============================================================================ JSON utilisé par la modal ========================================================================== */ $adminsForJavascript = []; foreach ($admins as $key => $admin) { $adminsForJavascript[$key] = [ 'name' => $admin['name'], 'servers' => $admin['servers'] ]; } ?>

Local Administrators — serveurs — administrateurs

Serveurs
Administrateurs distincts
Affectations admin / serveur
Serveurs sans admin renseigné
Serveur Administrateurs locaux Nombre
Aucun administrateur renseigné
$admin) : ?>
Administrateur Serveurs Détail