按最高值对列进行排序

时间:2013-08-04 18:27:37

标签: php pdo

我需要对列进行求和并将它们从最高到最低排序。

这就是我尝试过的!

$sth = $db->prepare("SELECT sum(A), sum(S), sum(D), sum(F) FROM XXX order by A, S, D, F DESC");
$sth->execute();

$result = $sth->fetch(PDO::FETCH_ASSOC);

这是输出的样子:

Array ( [sum(A)] => 38 [sum(S)] => 194 [sum(D)] => 40 [sum(F)] => 164 )

3 个答案:

答案 0 :(得分:0)

为什么不在结果被返回时在php中使用rsort()

sort()将从最低到最高,rsort()将从最高到最低

rsort($result);
print_r($result);

要保留数组的关联功能,请使用asort()(低 - >高)或arsort(); (高>低)

arsort($result);
print_r($result);

答案 1 :(得分:0)

SELECT sum(A), sum(S), sum(D), sum(F) FROM XXX order by S DESC, A DESC, D DESC, F DESC

基本上,您必须将DESC添加到要按降序排序的每列中。 默认为ASCending订单。

答案 2 :(得分:0)

复制并粘贴此代码,您可以搞清楚:

$sth = array(

'sumA' => 38,
'sumB' => 194,
'sumC' => 40,
'sumD' => 164

);

arsort($sth);

foreach($sth as $element => $num){
    echo $element . $num . '</br>';
}