在我的应用中,我想对各个标记求和。
假设第一个学生册编号11,我想添加所有学生册编号11。在学生册11之后,它将是学生册编号12,然后是13 14,依此类推。在我的代码中,我可以将所有标记加在一起,但是根据学生名册编号将它们分开。在下面,我给出了一个代码。
请大家帮我。
控制器代码:
if ($this->input->post('save_exam') == "save_exam") {
$ex_array = array();
$exam_id = $this->input->post('exam_id');
$student_array = $this->input->post('student');
$exam_array = $this->input->post('exam_schedule');
$total_marks =0;
foreach ($student_array as $key => $student) {
foreach ($exam_array as $key => $exam) {
$record['get_marks'] = 0;
$record['attendence'] = "pre";
if ($this->input->post('student_absent' . $student . "_" . $exam) == "") {
$get_marks = $this->input->post('student_number' . $student . "_" . $exam);
$record['get_marks'] = $get_marks;
$total_marks = $total_marks + $get_marks;
} else {
$record['attendence'] = $this->input->post('student_absent' . $student . "_" . $exam);
}
$record['exam_schedule_id'] = $exam;
$record['student_id'] = $student;
$record['exam_id'] = $this->input->post('exam_id');
$inserted_id = $this->examresult_model->add_exam_result($record);
if ($inserted_id) {
$ex_array[$student] = $exam_id;
}
}
}
}
答案 0 :(得分:0)
您将$ total_marks创建为一个简单变量。因此,它具有一个价值-每个人的价值。它必须是一个数组。不要将其设置为零-将其设置为空数组。
$total_marks = array();
遍历学生数组时,请在总分数组中创建一个索引并将其初始化为零:
$total_marks[$student] = 0;
重要说明:您将在两个for循环中重用$ key。不好的做法!
现在,当您将总分值添加到时,仅将其添加到该索引中:
$total_marks[$student]+= $get_marks;
完成后,$ total_marks将是一个数组,每个学生一个元素。