/** * Get an array of groupped results. * * @return array */ public function grouppedResults() { $groupped = []; foreach ($this->answers->all()->toArray() as $index => $answer) { foreach ($answer as $key => $value) { if ($value == null || $value == '' || in_array($key, $this->removeFromGrouppedResults)) { continue; } // Ignore if value is an array if (!is_array($value)) { $values = !in_array($key, $this->dontExplodeValue) ? explode(',', $value) : [$value]; foreach ($values as $value) { if (array_key_exists($key, $groupped) && array_key_exists($value, $groupped[$key])) { $groupped[$key][$value] = $groupped[$key][$value] + 1; } else { $groupped[$key][$value] = 1; } } } } } // Sorting the answers by number descending foreach ($groupped as $key => $value) { array_multisort($groupped[$key], SORT_NUMERIC, SORT_DESC); } return $groupped; }
/** * @return array */ public function answers() { $answers = $this->answersRepository->all(); return $this->respond(['data' => $this->answersTransformer->transformCollection($answers->toArray())]); }