public function orderByClassified($inscriptions) { $groupService = new GroupService(); $groupService->setManager($this->em); if (!is_null($inscriptions) && count($inscriptions) > 0) { $numGroups = $groupService->getNumGroupsByCategory($inscriptions[0]->getCategory()->getId()); $inscriptionsOrder = array(); $pivot = 0; $pivotGroup = 0; while (count($inscriptionsOrder) != count($inscriptions)) { foreach ($inscriptions as $inscription) { if ($inscription->getClassifiedPositionInGroup() == $pivotGroup && $inscription->getClassifiedPositionByGroups() == $pivot) { $inscriptionsOrder[] = $inscription; } } $pivot = $pivot + 1; if ($pivot >= $numGroups) { $pivot = 0; $pivotGroup = $pivotGroup + 1; } } return $inscriptionsOrder; } else { return $inscriptions; } }