1. <?php
  2. header("Content-Type:text/html;charset=utf-8");
  3. $result=array(
  4. '张一'=>'34','王一'=>'67','李一'=>'89','赵一'=>'91','刘一'=>'23',
  5. '张二'=>'60','王二'=>'71','李二'=>'70.5','赵二'=>'55','刘二'=>'61',
  6. '张三'=>'51','王三'=>'54','李三'=>'98','赵三'=>'99','刘三'=>'78',
  7. '张四'=>'47','王四'=>'84','李四'=>'37','赵四'=>'66','刘四'=>'78',
  8. '张五'=>'39','王五'=>'77','李五'=>'70.5','赵五'=>'79','刘五'=>'66',
  9. '张六'=>'88','王六'=>'46','李六'=>'78','赵六'=>'-80','刘六'=>'90',
  10. '张七'=>'101','王七'=>'90.2','李七'=>'40','赵七'=>'70','刘七'=>'76',
  11. '张八'=>'60','王八'=>'78','李八'=>'80','赵八'=>'45','刘八'=>'-87',
  12. '张九'=>'56','王九'=>'58','李九'=>'89','赵九'=>'66','刘九'=>'90',
  13. '张十'=>'49','王十'=>'65','李十'=>'69','赵十'=>'78','刘十'=>'38');
  14. $level=array('不及格','及格','良好','中等','优秀');
  15. //$level=array('F','D','C','B','A');
  16. //根据值大小重新排列$result数组
  17. asort($result);
  18. //$levelResults做为全局数组,用来装分类结果,如array(“不及格”=>array(“张一”=>“34”,...),“及格”=>array(“王一”=>"67",...))
  19. $levelResults=array($level[0]=>array(),$level[1]=>array(),$level[2]=>array(),$level[3]=>array(),$level[4]=>array(),"异常"=>array());
  20. //主要处理程序,将分类结果装入全局数组$levelResults
  21. processResults($result,$level);
  22. //将做好的全局数组$levelResults按规定格式打印出来
  23. printResults($levelResults);
  24. functionprocessResults($result,$level){
  25. global$levelResults;//使用全局数组$levelResults
  26. foreach($resultas$name=>$result){//遍历成绩数组取出名字和成绩
  27. if($result<0||$result>100){
  28. $levelResults["异常"][$name]=$result;//成绩小于0分并且大于100分的成绩为异常数据,装进[异常]=>array([名字]=>[成绩],...)里
  29. }elseif($result>=0&&$result<60){
  30. $levelResults[$level[0]][$name]=$result;//$level[0]是不及格,装进[不及格]=>array([名字]=>[成绩],...)里
  31. }
  32. elseif($result>=60&&$result<70){
  33. $levelResults[$level[1]][$name]=$result;//$level[1]是及格
  34. }
  35. elseif($result>=70&&$result<80){
  36. $levelResults[$level[2]][$name]=$result;//$level[2]是良好
  37. }
  38. elseif($result>=80&&$result<90){
  39. $levelResults[$level[3]][$name]=$result;//$level[3]是中等
  40. }else{
  41. $levelResults[$level[4]][$name]=$result;//$level[4]是优秀
  42. }
  43. }
  44. }
  45. functionprintResults($levelResults){
  46. foreach($levelResultsas$levelName=>$resultArr){//循环取得分类名称,如$levelName=不及格...
  47. echo$levelName."的人数:".count($resultArr)."人";//$resultArr为该分类下的数组,里面装名单和成绩
  48. echo"<br/>";
  49. echo"分别为:";
  50. foreach($resultArras$name=>$result){//嵌套循环取出该分类下的所有名单和成绩
  51. echo$name.'('.$result.'分)';
  52. }
  53. echo"<br/>";
  54. echo"<br/>";
  55. }
  56. }
  57. ?>

显示:

  1. 不及格的人数:15人
  2. 分别为: 刘一(23分) 张一(34分) 李四(37分) 刘十(38分) 张五(39分) 李七(40分) 赵八(45分) 王六(46分) 张四(47分) 张十(49分) 张三(51分) 王三(54分) 赵二(55分) 张九(56分) 王九(58分)
  3. 及格的人数:9人
  4. 分别为: 张二(60分) 张八(60分) 刘二(61分) 王十(65分) 赵九(66分) 刘五(66分) 赵四(66分) 王一(67分) 李十(69分)
  5. 良好的人数:12人
  6. 分别为: 赵七(70分) 李五(70.5分) 李二(70.5分) 王二(71分) 刘七(76分) 王五(77分) 赵十(78分) 刘三(78分) 王八(78分) 李六(78分) 刘四(78分) 赵五(79分)
  7. 中等的人数:5人
  8. 分别为: 李八(80分) 王四(84分) 张六(88分) 李一(89分) 李九(89分)
  9. 优秀的人数:6人
  10. 分别为: 刘六(90分) 刘九(90分) 王七(90.2分) 赵一(91分) 李三(98分) 赵三(99分)
  11. 异常的人数:3人
  12. 分别为: 刘八(-87分) 赵六(-80分) 张七(101分)

本文出自 “苹果梨的森林” 博客,请务必保留此出处http://pingguoli.blog.51cto.com/2390039/738568

更多相关文章

  1. 如何为$ wpdb-> insert创建一个包含column => value对的数组
  2. 如何在php中为json数组创建搜索功能
  3. json_encode在数组上返回null
  4. PHP数组值进入第二个数组[重复]
  5. 如何在php数组中插入新的键值对?
  6. mysql_fetch_array返回一个数组,数字为“1”
  7. PHP-从多维数组中删除重复值
  8. 更改数组键而不更改顺序
  9. 在PHP中更改关联数组索引的位置

随机推荐

  1. Android群英传第四章笔记·ListView使用
  2. Android 中文API (38) —— Spinner
  3. botoom tab + title bar
  4. TabLayout绑定Viewpager后不显示文字
  5. 对于Fragment的总结
  6. Android之通过shape.xml制作渐变背景色
  7. [Android Samples视频系列之ApiDemos] Ap
  8. Android(安卓)Studio 中文乱码问题
  9. android视图切换动画:ViewAnimator类及其
  10. 创建SqliteDatabase