【发布时间】:2014-08-28 22:59:32
【问题描述】:
我有一个看起来像这样的数组(连同分配的值):
loop thru students {
$count = 0;
loop thru classes {
$myArr[$obj->student][$count] = $grade;
}
}
我在表格中有数据:沿着 top 标题是类。沿着sides 是学生。每个交叉引用的单元格是学生成绩。我希望底部行是班级中所有学生的平均成绩。
我在上面的数组中有我需要的信息(第一部分是学生 id,第二部分是多少类的计数:这将始终相同。
我正在努力的部分是提取我需要获得平均值的信息:
我基本上需要先循环通过第二部分,以获得学生人数的总成绩和平均成绩。我不确定我是按照数组的顺序来做这件事的最佳方式。但这是重要的信息:外循环是学生,内循环是班级:这就是为什么我选择了我使用的顺序。
有人可以帮助我走上正轨吗?开始似乎很简单。
编辑 -- 按要求添加数据:
样本数据;学生证和年级; (有些成绩是空白的,但请忽略并假设它们会被填满;我会处理这些)
[18273372] => Array
(
[0] => 40%
[1] => 50%
[2] => 100%
[3] => 20%
[4] => ---
[5] => ---
[6] => ---
[7] => ---
[8] => ---
[9] => ---
[10] => ---
[11] => ---
[12] => 50%
[13] => ---
[14] => ---
[15] => ---
)
[18273372] => Array
(
[0] => 50%
[1] => 50%
[2] => 100%
[3] => 50%
[4] => ---
[5] => ---
[6] => ---
[7] => 55%
[8] => ---
[9] => 70%
[10] => ---
[11] => ---
[12] => 50%
[13] => ---
[14] => ---
[15] => ---
)
我需要平均值;例如,职位(或类别)0 平均为 45%。同样,0 - 15 代表 16 个不同的类别。每个学生的 0 班都是一样的。
编辑:
这是我的更新程序代码:
$avg[$obj->s_i_student_num][$count] = $gradebook->unitPercentage[$count];
$totals = array();
foreach($avg as $student_id => $scores) {
foreach($scores as $id => $percent) {
if ($percent == "---") { continue; }
$percent = (int) $percent;
$totals[$id][] = $percent;
}
}
【问题讨论】:
-
您能否输出数据的 print_r 或样本数组。我认为没有人愿意打出样本进行测试。
-
@JonathanKuhn 我已经添加了数据
标签: php for-loop multidimensional-array