header('Content-Type: text/plain;charset=utf-8');
$arr = array
(
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530109',
'stu_name' => '罗成',
'stu_major' => '12热工1班',
'depart_name' => '材料学院',
'project_name' => '学雷锋做好事',
'cname' => '社会活动模块',
'period' => '16',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530109',
'stu_name' => '罗成',
'stu_major' => '12热工1班',
'depart_name' => '材料学院',
'project_name' => '会计从业资格证',
'cname' => '科技创新模块',
'period' => '12',
'credit' => '0'
),
array
(
'term' => '2015-2016-1',
'stu_id' => '201210530109',
'stu_name' => '罗成',
'stu_major' => '12热工1班',
'depart_name' => '材料学院',
'project_name' => '教师资格证',
'cname' => '科技创新模块',
'period' => '12',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530111',
'stu_name' => '雷雨',
'stu_major' => '13视传1班',
'depart_name' => '设计学院',
'project_name' => '美术学',
'cname' => '文体艺术模块',
'period' => '15',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530108',
'stu_name' => '周励',
'stu_major' => '13产设1班',
'depart_name' => '设计学院',
'project_name' => 'DOM编程艺术',
'cname' => '科技创新模块',
'period' => '0',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530116',
'stu_name' => '高颜',
'stu_major' => '13陶艺2班',
'depart_name' => '陶美学院',
'project_name' => '音乐',
'cname' => '文体艺术模块',
'period' => '0',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530110',
'stu_name' => '程风',
'stu_major' => '13信管1班',
'depart_name' => '信息学院',
'project_name' => 'JavaScript高级程序设计',
'cname' => '思想道德模块',
'period' => '12',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530112',
'stu_name' => '苏环',
'stu_major' => '13公事1班',
'depart_name' => '人文学院',
'project_name' => '音乐',
'cname' => '文体艺术模块',
'period' => '0',
'credit' => '0'
),
array
(
'term' => '2015-2016-2',
'stu_id' => '201210530109',
'stu_name' => '罗成',
'stu_major' => '12热工1班',
'depart_name' => '材料学院',
'project_name' => '美术学',
'cname' => '文体艺术模块',
'period' => '12',
'credit' => '0'
),
array
(
'term' => '2015-2016-1',
'stu_id' => '201210530109',
'stu_name' => '罗成',
'stu_major' => '12热工1班',
'depart_name' => '材料学院',
'project_name' => 'DOM编程艺术',
'cname' => '科技创新模块',
'period' => '12',
'credit' => '0'
),
array
(
'term' => '2015-2016-1',
'stu_id' => '201210530108',
'stu_name' => '周励',
'stu_major' => '13产设1班',
'depart_name' => '设计学院',
'project_name' => '美术学',
'cname' => '文体艺术模块',
'period' => '12',
'credit' => '0'
),
);
$tmp = array();
foreach($arr as $v) {
if(!isset($tmp[$v['stu_id']])){
$tmp[$v['stu_id']] = $v;
}else {
$tmp[$v['stu_id']]['period'] += $v['period'];
}
}
echo "
";
// 二维数组
print_r(array_values($tmp));
?>
$arr是一个二维数组,数组里有相同的stu_id(学生学号),根据stu_id(学生学号)的period(学时),计算总的period(学时),我的实现方案是这样的。
$tmp = array();
foreach($arr as $v) {
if(!isset($tmp[$v['stu_id']])){
$tmp[$v['stu_id']] = $v;
}else {
$tmp[$v['stu_id']]['period'] += $v['period'];
}
}
echo "
";
// 二维数组
print_r(array_values($tmp));
但是,这只是实现了period(学时)相加。
我还需要加限制条件计算出数组和每个学生的总学分(credit),就是根据cname(模块名称),某个学生的每个模块(共四个模块,分别是思想道德模块、科技创新模块、文体艺术模块、社会活动模块)都需要大于等于16(四个模块同时都满足大于等于16),则这个学生的总学分为6.否则为0。
不知道怎么实现,特请教各位大神,在此先谢谢各位解答了。