PHP数组排序到HTML表
PHP array sorted into HTML table
我在我的游戏中通过 FTP实现了一个在线评分系统。这里,看一下被更新的文本文件:
User0:1000
User1:1500
User2:250
User3:700
然后,我要做的是创建一个有3列的表:排名|姓名|分数
我已经能够提取每一行的名称和分数:
<table><td>Rank</td><td>Name</td><td>Score</td>
<?php $lines = file("./scores/pk.txt");
for($i=0;$i<count($lines);$i++) {
echo "<tr><td></td>";
echo "<td>".substr($lines[$i],0,strpos($lines[$i],":"))."</td>";
echo "<td>".substr($lines[$i],strpos($lines[$i],":")+1)."</td>";
echo "</tr>";
} ?> </table<
但是你知道,如果我执行这个,我得到第一列为空(因为"
所以我的问题是(最后):
如何按第三列和在第一列中分配正确的秩对数组进行排序?
在我的例子中,它看起来像:
排名|姓名 |得分
,,, 1,,,,| User1 | 1500
,,, 2,,,,| User0 | 1000
,,, 3,,,,| User3 | 700
4,,,,,,,| User2 | 250
这应该可以为您工作:
用array_map()
和explode()
循环遍历文件的每一行,中间加一个冒号。
那么你可以简单地用usort()
排序。然后你可以在你的表中显示数据。
<?php
$lines = file("./scores/pk.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$lines = array_map(function($v){
return explode(":", $v);
}, $lines);
usort($lines, function($a, $b){
return $b[1] - $a[1];
});
echo "<table border='1'><tr><td>Rank</td><td>Name</td><td>Score</td></tr>";
foreach($lines as $rank => $line)
echo "<tr><td>" . ($rank+1) . "</td><td>" . $line[0] . "</td><td>" . $line[1] . "</td></tr>";
echo "</table>";
?>
输出:Rank Name Score
1 User1 1500
2 User0 1000
3 User3 700
4 User2 250
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用jQuery在html数组中设置一个值
- Javascript中的多维数组排序索引问题
- HTML 数组乘以 javascript
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- 如何在javascript中处理html数组元素,并使用ajax将它们传递给控制器
- Javascript数组排序速度受字符串长度的影响
- 无法将html数组传递给JS
- 按唯一键将对象数组排序为数组
- 使用 jQuery 更改基于下拉 html 数组的文本框
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 根据输出对HTML数组进行排序
- PHP数组排序到HTML表