Modern answer (requires PHP 5.5)
The new feature is array_columnvery versatile, and one of the things it can do is just this type of reindexing:
$usersById = array_column($users, null, 'Id');
Original answer (for earlier versions of PHP)
You need to get the identifiers from subarrays with array_map, and then create a new array with array_combine:
$ids = array_map(function($user) { return $user['Id']; }, $users);
$users = array_combine($ids, $users);
PHP >= 5.3 , ( ) create_function, PHP >= 4.0.1:
$ids = array_map(create_function('$user', 'return $user["Id"];'), $users);
$users = array_combine($ids, $users);
.