附件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是某班级各科考试成绩统计表,请以数组的方式完成以下功能
列出各单科最高分、最低分的分值以及姓名
列出总分最高分、最低分的分值以及姓名求高人讲解

解决方案 »

  1.   

    为什么要存到文本中。
    我的做法,将这些文本导入到数据库里面,方便查询。
    建了表 cj表cj,结构 xm,yw,sx,wl,yy,hx
    应该是存入到了数据库里面的,你直接查询数据库最好。
      

  2.   

    先提取出来然后导入到数据库里面:<?php 
    $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 
            ))
    */?>
      

  3.   


    呃,不好意思,正则写错了,应该是:$regx = '/(.+)\|(.+)\|(.+)\|(.+)\|(.+)\|(.+)\n?/'; // \n背后有一个问号
      

  4.   

    function foo($s) {
      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 />';