我有一个这样的数组:
Array
(
[Team Name 1] => Array
(
[0] => Array
(
[P] => 1
[CID] => 1
[S] => School 1
)
[1] => Array
(
[P] => 1
[CID] => 1
[S] => School 1
)
[2] => Array
(
[P] => 4
[CID] => 1
[S] => School 1
)
[3] => Array
(
[P] => 5
[CID] => 1
[S] => School 1
)
)
[Team Name 2] => Array
(
[0] => Array
(
[P] => 1
[CID] => 5
[S] => School 2
)
)
[Team Name 3] => Array
(
[0] => Array
(
[P] => 3
[CID] => 3
[S] => School 2
)
[1] => Array
(
[P] => 3
[CID] => 3
[S] => School 2
)
[2] => Array
(
[P] => 6
[CID] => 13
[S] => School 2
)
)
[Team Name 4] => Array
(
[0] => Array
(
[P] => 4
[CID] => 1
[S] => School 3
)
[1] => Array
(
[P] => 6
[CID] => 1
[S] => School
)
[2] => Array
(
[P] => 6
[CID] => 1
[S] => School 3
)
)
)
是否可以通过计算拥有相同学校的每个团队的两个积分来计算每所学校的平均值?你可以看到一些团队有两个以上的分数。它应该只计算每个团队最近增加的两个点数。我将如何实现这一目标?
目前我的SQL / PHP查询是这样的:
$query1 = $db->prepare("SELECT points_1 As P, school As S, name As N, points.city_id As CID FROM points INNER JOIN teams ON teams.id = points.team_id INNER JOIN schools ON school.school_id = teams.school_id ORDER BY points.P ASC");
$query1->execute();
$Calc = $query1->fetchAll();
$schoolAVG = array();
foreach ($Calc as $AVG) {
$schoolAVG[$AVG['N']][] = array('P'=>$AVG['P'],'CID'=>$AVG['CID'],'S'=>$AVG['S']);
}