public function getAllEquations() { $result = ['groups' => [], 'ungrouped' => [], 'grouped' => []]; // GROUPS $group_result = $this->equationDao->getGroups(); $groups = []; if ($group_result and $group_result->num_rows > 0) { for ($i = 0; $i < $group_result->num_rows; $i++) { $temp = mysqli_fetch_array($group_result, MYSQLI_ASSOC); array_push($groups, $temp['group']); } } $result['groups'] = $groups; // UNGROUPED EQUATIONS $ungrouped_result = $this->equationDao->getUngroupedEquations(); $ungrouped_equations = []; if ($ungrouped_result and $ungrouped_result->num_rows > 0) { while ($row = $ungrouped_result->fetch_assoc()) { $equation = new Equation(); $equation->setEquation($row['equation']); $equation->setAnswer($row['answer']); array_push($ungrouped_equations, $equation); } } $result['ungrouped'] = $ungrouped_equations; // GROUPED EQUATIONS $grouped_result = $this->equationDao->getGroupedEquations(); $temp_grouped_equations = []; $equations = []; if ($grouped_result and $grouped_result->num_rows > 0) { while ($row = $grouped_result->fetch_assoc()) { $equation = new Equation(); $equation->setEquation($row['equation']); $equation->setAnswer($row['answer']); array_push($temp_grouped_equations, [$equation, $row['group']]); array_push($equations, $equation); } } $grouped_equations = []; $temp_equations = []; foreach ($temp_grouped_equations as $equation) { if ($grouped_equations == [] or in_array($equation[0], $temp_equations) === false) { array_push($temp_equations, $equation[0]); $indexes = array_keys($equations, $equation[0]); $groups = []; foreach ($indexes as $index) { array_push($groups, $temp_grouped_equations[$index][1]); } array_push($grouped_equations, [$equation[0], $groups]); } } $result['grouped'] = $grouped_equations; return $result; }