⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 fdsa学生管理系统生管理系统生管理系统生管理系统
💻 PHP
字号:
<?php

function sp($str){//定义一个函数。功能是:将成绩表中的每一行中的数据进行分离

        $tmp=preg_split("/\t/",$str);

        return array("name"=>$tmp[0],"first_test"=>$tmp[1],"second_test"=>$tmp[2]);

        

}

$arr=file("24.txt");/*读入储存有成绩的文本文件 */

$arr1=array_map("sp",$arr);/*调用函数“sp”,产生一个储存成绩的二维的主数组*/







/* 开始第一次考试成绩排名 */

foreach($arr1 as $key=>$value){/*遍历数组,将二维数组中的相同字段(同列)的数据读取出来,储存到一维数组中*/

        $first_test[$key]=$value['first_test'];

}

array_multisort($first_test,SORT_NUMERIC,SORT_DESC,$arr1);/*按字段进行排序(降序排列)*/

/*开始按分数高低进行排名*/

$stat=array_count_values($first_test);/*统计每一个分数的得分人数*/

$index=1;/*初始化排名*/



foreach($stat as $val){/* 遍历数组*/

        

        for($i=0;$i<$val;$i++){/*此循环实现功能:同一分值按同一排名处理*/

                $a1[]=$index;/*数组$a储存排名*/

                }

        $index+=$val;/*排名累加*/

        }



for($i=0;$i<count($arr1);$i++){/*此循环将储存排名的数组压入主数组当中。*/

        $arr1[$i]['order_1']=$a1[$i];/* 按对应的键压入*/

        }

/*结束按分数高低进行排名*/

/* 结束第一次考试成绩排名 */





/* 开始第二次考试成绩排名 */

foreach($arr1 as $key=>$value){/*遍历数组,将二维数组中的相同字段(同列)的数据读取出来,储存到一维数组中*/

        $second_test[$key]=$value['second_test'];

}

array_multisort($second_test,SORT_NUMERIC,SORT_DESC,$arr1);/*按字段进行排序(降序排列)*/

/*开始按分数高低进行排名*/

$stat=array_count_values($second_test);/*统计每一个分数的得分人数*/

$index=1;/*初始化排名*/



foreach($stat as $val){/* 遍历数组*/

        

        for($i=0;$i<$val;$i++){/*此循环实现功能:同一分值按同一排名处理*/

                $a2[]=$index;/*数组$a储存排名*/

                }

        $index+=$val;/*排名累加*/

        }



for($i=0;$i<count($arr1);$i++){/*此循环将储存排名的数组压入主数组当中。*/

        $arr1[$i]['order_2']=$a2[$i];/* 按对应的键压入*/

        }

/*结束按分数高低进行排名*/

/*结束第二次考试成绩排名 */



/*开始统计第二次考试与第一次考试的名次升降 */

for($i=0;$i<count($arr1);$i++){

        $arr1[$i]['diff']=$arr1[$i]['order_1']-$arr1[$i]['order_2'];

}



/*结束统计第二次考试与第一次考试的名次升降 */







/*以下是输出处理好的排名*/

        echo "<table width='50%' cellpadding='0' cellspacing='1' align='center' border='1'>";

        echo "<tr><th>姓名</th><th>第一次考试/排名</th><th>第二次考试/排名</th><th>名次变化</th></tr>";

foreach($arr1 as $value){

        if($value['diff']>0){

                $diff="↗".abs($value['diff']);

        }elseif($value['diff']<0){

                $diff="&nbsp;&nbsp;&nbsp;&nbsp;".abs($value['diff'])."↘";

        }else{

                $diff="--";

        }

        echo "<tr align='center'><td> {$value['name']} </td><td> {$value['first_test']}/{$value['order_1']} </td><td> {$value['second_test']}/{$value['order_2']} </td><td>$diff</td></tr>";

        }

        echo "</table>";

/*结束输出*/

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -