文本数据库多维数组排序~~急!!! 想做一个排行榜~~用文本数据库保存数据~~~一个页面添加选手编号~和成绩~~另一个页面按照成绩的降序~把前20名显示出来~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 對多維數組進行排序上次有人問過了以下給個手冊的例子:本例中 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);?> 嗯.....目的是知道了,什么问题那?插入后,在另一页面读取:$arr = file('xx.txt');然后对$arr排序 这步array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); 完了~~怎么读取数据啊?我还需要显示出来啊~ 例子 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)} 既然是用 文本数据库:(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名了; 排完后print_r($data)取出前20条 新手求助--关于数据库 娌圭敾 将这个乱码转成中文,是PHP跟MYSQL数据库弄的!!有关编码utf8,latin1!! php邮件发送附件问题 php + access 中时间问题 移动动态生成的table行,判断最上一行(在线跪求) 如何点击复制单元格 这是哪里错了 php怎么和.net一起配置,并且不会相互影响。求高手 大家帮我推荐最漂亮、功能最强的论坛(或社区) 打开yii框架前台应用,报错 在哪里设置symlink()为true呢 [100分较难] FreeBSD下PHP实现以HTML方式查看XLS 一个关于乱码的问题
以下給個手冊的例子:本例中 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);
?>
$arr = file('xx.txt');
然后对$arr排序
完了~~怎么读取数据啊?我还需要显示出来啊~
例子 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)
}
比如:数据
$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名了;
排完后print_r($data)取出前20条