如何生成具有混合列值的关联阵列的组和AVG报告



我有此数据阵列

Array(
    [0] => Array
        (
            [mclass] => 9
            [mname] => Astik
            [mmarks] => 480
            [midno] => M199
            [fclass] => 10B
            [fname] => Priya
            [fmarks] => 490
            [fidno] => F200
        )
    [1] => Array
        (
            [mclass] => 9
            [mname] => Vikas
            [mmarks] => 470
            [midno] => M129
            [fclass] => 10B
            [fname] => Sakshi
            [fmarks] => 480
            [fidno] => F205
        )
    [2] => Array
        (
            [mclass] => 9
            [mname] => Tejas
            [mmarks] => 476
            [midno] => M220
            [fclass] => 10B
            [fname] => Kriya
            [fmarks] => 499
            [fidno] => F108
        )
    [3] => Array
        (
            [mclass] => 10
            [mname] => Mishra
            [mmarks] => 499
            [midno] => M390
            [fclass] =>  
            [fname] =>  
            [fmarks] =>  
            [fidno] =>  
        )
    [4] => Array
        (
            [mclass] => 
            [mname] => 
            [mmarks] => 
            [midno] =>  
            [fclass] => 10
            [fname] => Vani
            [fmarks] => 500
            [fidno] => F360
        )
)

我不确定如何分行打破
1.男孩平均等待所有女孩上市
2.显示AVG。

我无法控制此混合序列存储的数组。在Max,我可以将该数组分为男孩数组和女孩阵列,但是如何显示将是另一个查询范围。现在,使用此数据,我很难如上所述获得显示格式。

以下是我使用以下代码获得的输出

    Boys    Marks   Girls   Marks
    Astik   480 Priya   490
    Vikas   470 Sakshi  480
    Tejas   476 Kriya   499
    Mishra  499 Vani    500

我尝试过的代码是

foreach ($bsarr as $bkey => $bvalue) {
    if (isset($bvalue['mname']) && isset($bvalue['fname']) ){
        echo "<tr> <td>".$bvalue['mname']."</td><td>".$bvalue['mmarks']."</td><td></td><td>".$bvalue['fname'] ."</td><td>".$bvalue['fmarks']."</td></tr>"; 
    }
    if (isset($bvalue['mname']) && !isset($bvalue['fname']) ){
        echo "<tr> <td>".$bvalue['mname']."</td><td>".$bvalue['mmarks']."</td><td></td><td>  </td><td>  </td></tr>";
    }
    if (!isset($bvalue['mname']) &&  isset($bvalue['fname']) ){
        echo  "<tr><td></td><td>  </td><td></td><td>".$bvalue['fname'] ." </td> <td>".$bvalue['fmarks']."</td><td></td></tr>"; 
    }
 } 

我希望Break Break Break Break Break Break of 9级男孩的分数,并列10级女孩的印记和后来的第10个男孩,低于9th Boys Avg。

            Boys    Marks   Girls   Marks
            Astik   480     Priya   490
            Vikas   470     Sakshi  480
            Tejas   476     Kriya   499
                            Vani    500
                   Avg  xxx         Avg xxx
               ------------        ------------
            Mishra  499
                    Avg xxx
               ------------

您的表不适用于此任务。

  1. 您应该有一个类似结构的个人资料表:

    Profile (idno, name, gender)
    
  2. 您应该有一个类似结构的类的表格:

    ClassRoom (id_PK, class_title)
    
  3. 您应该有另一个表,该表存储每个学生的不同分数项目:

    Scores (id_PK, profile_id, class_id, score)
    

这样,您不必为让班级的男女学生在一排中遇到数据而挣扎。您还可以查询数据库并运行thr组和AVG SQL聚合功能。您也可以通过性别订购。

尝试一下以查看是否有帮助。谢谢

最新更新