33 foreach ($attach[
'QUESTIONS'] ?? [] as $question)
35 foreach ($question[
'ANSWERS'] ?? [] as $answer)
37 if (isset($answer[
'COUNTER']) && (
int)$answer[
'COUNTER'] > 0)
39 $answerId = (int)($answer[
'ID'] ?? 0);
40 $byAnswers[$answerId] = $this->getAnsweredUserIds($answerId,
$pageSize)->userIds;
41 $userIds += $byAnswers[$answerId];
51 $formattedUsers = $this->provider->getByUserIds($userIds)->toArray();
53 $formattedByAnswers = [];
54 foreach ($byAnswers as $answerId => $answerUserIds)
56 $formatedAnswerUsersById = array_intersect_key($formattedUsers, $answerUserIds);
57 $sortedUsers = $this->getUsersInIdOrder($formatedAnswerUsersById, $answerUserIds);
58 $formattedByAnswers[$answerId] = array_values($sortedUsers);
61 return $formattedByAnswers;
73 $userIdsPage = $this->getAnsweredUserIds($answerId,
$pageSize,
$page);
74 $formattedUsers = $this->provider->getByUserIds($userIdsPage->userIds)->toArray();
75 $sortedUsers = $this->getUsersInIdOrder($formattedUsers, $userIdsPage->userIds);
80 totalCount: $userIdsPage->totalCount,
81 items: array_values($sortedUsers),