附件3文本数据:
姓名 |语文 |数学 | 物理 |英语|化学
张群 | 90 |92 | 98 | 92 |98
李天宝 | 80 |90 | 91 | 92 |88
吴梦 | 87 |98 | 88 | 72 |99
吴林 | 95 |82 | 86 | 95 |93
雷丹 | 76 |62 | 82 | 79 |68
周玉 | 96 |95 | 97 | 99 |90
刘叶华 | 98 |99 | 93 | 92 |91
高丽洁 | 93 |82 | 85 | 94 |89
陈江平 | 85 |91 | 78 | 90 |87
陈明生 | 87 |83 | 90 | 92 |91
张国立 | 96 |68 | 65 | 90 |78
附件3是某班级各科考试成绩统计表,请以数组的方式完成以下功能
列出各单科最高分、最低分的分值以及姓名
列出总分最高分、最低分的分值以及姓名求高人讲解
姓名 |语文 |数学 | 物理 |英语|化学
张群 | 90 |92 | 98 | 92 |98
李天宝 | 80 |90 | 91 | 92 |88
吴梦 | 87 |98 | 88 | 72 |99
吴林 | 95 |82 | 86 | 95 |93
雷丹 | 76 |62 | 82 | 79 |68
周玉 | 96 |95 | 97 | 99 |90
刘叶华 | 98 |99 | 93 | 92 |91
高丽洁 | 93 |82 | 85 | 94 |89
陈江平 | 85 |91 | 78 | 90 |87
陈明生 | 87 |83 | 90 | 92 |91
张国立 | 96 |68 | 65 | 90 |78
附件3是某班级各科考试成绩统计表,请以数组的方式完成以下功能
列出各单科最高分、最低分的分值以及姓名
列出总分最高分、最低分的分值以及姓名求高人讲解
我的做法,将这些文本导入到数据库里面,方便查询。
建了表 cj表cj,结构 xm,yw,sx,wl,yy,hx
应该是存入到了数据库里面的,你直接查询数据库最好。
$str = '姓名 |语文 |数学 | 物理 |英语|化学
张群 | 90 |92 | 98 | 92 |98
李天宝 | 80 |90 | 91 | 92 |88
吴梦 | 87 |98 | 88 | 72 |99
吴林 | 95 |82 | 86 | 95 |93
雷丹 | 76 |62 | 82 | 79 |68
周玉 | 96 |95 | 97 | 99 |90
刘叶华 | 98 |99 | 93 | 92 |91
高丽洁 | 93 |82 | 85 | 94 |89
陈江平 | 85 |91 | 78 | 90 |87
陈明生 | 87 |83 | 90 | 92 |91
张国立 | 96 |68 | 65 | 90 |78';
$regx = '/(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)\n/';
if (preg_match_all($regx,$str,$out)) {
print_r($out);
}else{
echo "Err";
}
/*
Array
(
[0] => Array
(
[0] => 张群 | 90 |92 | 98 | 92 |98 [1] => 李天宝 | 80 |90 | 91 | 92 |88 [2] => 吴梦 | 87 |98 | 88 | 72 |99 [3] => 吴林 | 95 |82 | 86 | 95 |93 [4] => 雷丹 | 76 |62 | 82 | 79 |68 [5] => 周玉 | 96 |95 | 97 | 99 |90 [6] => 刘叶华 | 98 |99 | 93 | 92 |91 [7] => 高丽洁 | 93 |82 | 85 | 94 |89 [8] => 陈江平 | 85 |91 | 78 | 90 |87 [9] => 陈明生 | 87 |83 | 90 | 92 |91 ) [1] => Array
(
[0] => 张群
[1] => 李天宝
[2] => 吴梦
[3] => 吴林
[4] => 雷丹
[5] => 周玉
[6] => 刘叶华
[7] => 高丽洁
[8] => 陈江平
[9] => 陈明生
) [2] => Array
(
[0] => 90
[1] => 80
[2] => 87
[3] => 95
[4] => 76
[5] => 96
[6] => 98
[7] => 93
[8] => 85
[9] => 87
) [3] => Array
(
[0] => 92
[1] => 90
[2] => 98
[3] => 82
[4] => 62
[5] => 95
[6] => 99
[7] => 82
[8] => 91
[9] => 83
) [4] => Array
(
[0] => 98
[1] => 91
[2] => 88
[3] => 86
[4] => 82
[5] => 97
[6] => 93
[7] => 85
[8] => 78
[9] => 90
) [5] => Array
(
[0] => 92
[1] => 92
[2] => 72
[3] => 95
[4] => 79
[5] => 99
[6] => 92
[7] => 94
[8] => 90
[9] => 92
) [6] => Array
(
[0] => 98
[1] => 88
[2] => 99
[3] => 93
[4] => 68
[5] => 90
[6] => 91
[7] => 89
[8] => 87
[9] => 91
))
*/?>
呃,不好意思,正则写错了,应该是:$regx = '/(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)\n?/'; // \n背后有一个问号
return split("([ \|]||)+", trim($s));
}
$ar = array_map('foo', file('dat.txt'));
$headline = array_shift($ar);
print_r($headline);for($i=1; $i<count($headline); $i++) {
$k = array();
foreach($ar as $r) {
$k[] = $r[$i];
}
array_multisort($k, SORT_DESC, $ar);
echo $headline[$i] . '<br />';
echo $ar[0][0], ',', $ar[0][$i], '<br />';
echo $ar[count($ar)-1][0], ',', $ar[count($ar)-1][$i], '<br />';
}
$k = array();
foreach($ar as $r) {
$k[] = array_sum($r);
}
array_multisort($k, SORT_DESC, $ar);
echo '总分' . '<br />';
echo $ar[0][0], ',', $k[0], '<br />';
echo $ar[count($ar)-1][0], ',', $k[count($ar)-1], '<br />';