// ---------------------------------------------------------------------------- // Prepare input by mapping question numbers to role numbers. // ---------------------------------------------------------------------------- // Bijective map. $map_ques_to_role = array(15 => 1, 16 => 2, 17 => 3, 18 => 4); // Modify $student_list, applying the map to question numbers. foreach ($student_list as &$role_response_list) { foreach ($role_response_list as &$ques_resp_pair) { $question_num = $ques_resp_pair[0]; $ques_resp_pair[0] = $map_ques_to_role[$question_num]; } } // ---------------------------------------------------------------------------- // Invoke suggestion algorithm. // ---------------------------------------------------------------------------- $groups = SugAlg::compute_groups($student_list); // ---------------------------------------------------------------------------- // Add names. // ---------------------------------------------------------------------------- $query = "SELECT student_id, name FROM student_info"; $name_responses = DB::query($query); $names = array(); foreach ($name_responses as $name_record) { $student_id = (int) $name_record['student_id']; $name = $name_record['name']; $names[$student_id] = $name; } // StuId -> [StuId, Name] function add_name($stu_id) { global $names;