По понятным причинам в результате получается двухмерный массив, представляющий строки и столбцы, которые вы получите при выполнении запроса. Вдобавок ко всему, в доктрине нет функции, позволяющей преобразовать ее в желаемый формат.
Однако вы можете использовать PHP для переформатирования массива.
$result = $this->createQueryBuilder('i')
->select('(i.sortiesNoSortie)','COUNT(i.participantsNoParticipant)')
->groupBy('i.sortiesNoSortie')
->getQuery()
->getArrayResult();
$output = array();
foreach($result as $row) {
$output[$row[0]] = $row[1];
}
Поначалу кажется, что это не идеально, но если бы доктрина реализовала что-то для форматирования так, как вы хотите, то, скорее всего, она сделала бы что-то похожее и просто обернула бы это для вас хорошей функцией.
Сказав это, может быть более хороший способ обработки данных с использованием PHP, отличный от цикла foreach. В любом случае, не стесняйтесь полностью переформатировать ваши данные в PHP после получения их из доктрины. Очевидно, что это будет в каждом конкретном случае, но кажется, что вы обрабатываете небольшие объемы данных, поэтому дополнительная обработка не будет проблемой.
Редактировать
Спасибо @Matteo за напоминание. array_column - это функция, которую можно использовать для замены цикла foreach.
$output = array_column($result, 1, 0);