使用sort函数对数据进行排序或从数据库中检索排序?

时间:2012-02-29 13:03:37

标签: php mysql arrays sorting

我有一份有相应分数的球队名单。

$name[$i]包含名称,scores[$i]包含相应的分数

我需要按分数对球队进行排序,同时保持与其相应球队名称的分数关联。

我想知道最好创建一个多维数组,如 $teaminfo[$name][$score]并使用排序功能或我最好 在使用sql从数据库中获取数据时对数据进行排序?

哪种方式甚至重要?我正在寻找最简单的方法。

2 个答案:

答案 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的多个值 - 而且我们不知道这些值如何组合以确定顺序 - 按最大值?平均?总?别的什么?在这种情况下,您可能需要子查询。