📄 index.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=" ".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 + -