uasort问题 - 首先输出的最大值

时间:2011-07-11 15:49:01

标签: php mysql sql

所以如果我在一个对象中有两列

A - >值是10 8 6 4

B - >值是9 7 5 3

我想将B合并为A,其中9低于10,低于7等等。

uasort($TopConsumers,array('Utilities','orderconsumers'));
public static function orderConsumers($TopConsumers)
{
    $a = $TopConsumers->outTotal;
    $b = $TopConsumers->inTotal;
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : +1;
}

为什么这不起作用?

2 个答案:

答案 0 :(得分:3)

您需要先合并数组,然后对它们进行排序。

$merged = array_merge($TopConsumers->outTotal, $TopConsumers->inTotal);
sort($merged);

答案 1 :(得分:0)

您的排序功能需要$ a和$ b作为参数。不是数组本身。

public static function orderConsumers($a, $b)
{
    if ($a->outTotal == $b->inTotal) {
        return 0;
    }
    return ($a->outTotal > $b-inTotal) ? -1 : +1;
}

那说按两列排序似乎有点奇怪。我不确定这会给你什么。通常,您会在用户排序函数中比较相同的列名称。