想做一个排行榜~~
用文本数据库保存数据~~~
一个页面添加选手编号~和成绩~~
另一个页面按照成绩的降序~把前20名显示出来~~ 

解决方案 »

  1.   

    對多維數組進行排序上次有人問過了
    以下給個手冊的例子:本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。 例子中的数据如下: volume | edition
    -------+--------
        67 |       2
        86 |       1
        85 |       6
        98 |       2
        86 |       6
        67 |       7
     数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。 <?php
    $data[] = array('volume' => 67, 'edition' => 2);
    $data[] = array('volume' => 86, 'edition' => 1);
    $data[] = array('volume' => 85, 'edition' => 6);
    $data[] = array('volume' => 98, 'edition' => 2);
    $data[] = array('volume' => 86, 'edition' => 6);
    $data[] = array('volume' => 67, 'edition' => 7);
    ?>  本例中将把 volume 降序排列,把 edition 升序排列。 现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。 <?php
    // 取得列的列表
    foreach ($data as $key => $row) {
        $volume[$key]  = $row['volume'];
        $edition[$key] = $row['edition'];
    }// 将数据根据 volume 降序排列,根据 edition 升序排列
    // 把 $data 作为最后一个参数,以通用键排序
    array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
    ?>  
      

  2.   

    嗯.....目的是知道了,什么问题那?插入后,在另一页面读取:
    $arr = file('xx.txt');
    然后对$arr排序
      

  3.   

    这步array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); 
     完了~~怎么读取数据啊?我还需要显示出来啊~
      

  4.   


    例子 1. 对多个数组排序<?php
    $ar1 = array("10", 100, 100, "a");
    $ar2 = array(1, 3, "2", 1);
    array_multisort($ar1, $ar2);var_dump($ar1);
    var_dump($ar2);
    ?>  本例中经过排序后,第一个数组将包含 "10","a",100,100。第二个数组将包含 1,1,"2",3。第二个数组中的项目顺序完全和第一个数组中相应的项目(100 和 100)顺序一致。 array(4) {
      [0]=> string(2) "10"
      [1]=> string(1) "a"
      [2]=> int(100)
      [3]=> int(100)
    }
    array(4) {
      [0]=> int(1)
      [1]=> int(1)
      [2]=> string(1) "2"
      [3]=> int(3)
    }
     
      

  5.   

    既然是用  文本数据库:(PHP文件保存)
    比如:数据
    $arr = array(选手编号 => 成绩,编号 => 成绩);
    然后写如文件:
    $fp = fopen('文件路径','w');
    fputs($fp,'<?php return '.var_export($arr,true).'; ?>');
    fclose($fp);
    (注意  当在次保存的时候
    先   $arr = require('文件路径');得到数组
       然后 @unlink('文件路径');
      把保存的 编号和成绩 保存进数组:$arr[$_POST['ID']] = $_POST['chengji'];
    然后继续把 数组保存进 文件..
    )
    使用的时候:
    $arr = require('文件路径');
    然后今行排序:
    arsort($arr);
    $i = 0;
    foreach($arr as $key => $value){
       $i ++;
       echo '编号为:'.$key.'的成绩为:'.$value;
       if($i == 20){
          break;
       }
    }
    这边就得到$arr 的前20名了;
      

  6.   


    排完后print_r($data)取出前20条