我有一份有相应分数的球队名单。
$name[$i]
包含名称,scores[$i]
包含相应的分数
我需要按分数对球队进行排序,同时保持与其相应球队名称的分数关联。
我想知道最好创建一个多维数组,如
$teaminfo[$name][$score]
并使用排序功能或我最好
在使用sql从数据库中获取数据时对数据进行排序?
哪种方式甚至重要?我正在寻找最简单的方法。
答案 0 :(得分:4)
通过直接从数据库中对其进行排序,您将为自己节省一大堆头痛。只需在SQL中包含ORDER BY
子句。
编辑:
如果当前正在运行2个查询
SELECT first_table.*, second_table.* WHERE first_table.id = second_table.id
ORDER BY second_table.score DESC
(或其他什么!)
答案 1 :(得分:1)
只是为了扩展Josh的答案......
我需要按分数排序球队...多维数组,例如$ teaminfo [$ name] [$ score]
WTF?如果团队只能有一个分数,为什么要尝试在数组中保留单个值?你只需要一个简单的数组(BTW:PHP数组不是多维的 - 它们是嵌套的):
$s=mysql_query("SELECT team, score FROM yourtable");
while($r=mysql_fetch_assoc($s)) {
$data[$r['team']]=$r['score'];
}
arsort($data);
然而,在将数据返回到PHP之前对数据库中的数据进行排序会快得多。 OTOH你可能会为每个$ team获得$ score的多个值 - 而且我们不知道这些值如何组合以确定顺序 - 按最大值?平均?总?别的什么?在这种情况下,您可能需要子查询。