通过数组的一列从db查询中对数组进行排序

时间:2013-10-08 17:12:55

标签: php mysql arrays sorting

是否可以从数据库查询中获取数组中的结果并按结果中的一列进行排序?如果是这样,那怎么办呢?

以下是我拥有的数组示例:

数组([0] => stdClass对象([item] => 0 [size] => 2056515 [group] => SF2K [描述] => 205 / 65R15 SAFFIRO SF2000 94V 40K [sort4 ] => 94 [sort5] => V [sort6] => [price] => 69.14)[1] => stdClass对象([item] => 8518 [size] => 2056515 [ group] => FTOUR [描述] => 205 / 65R15 FUZION TOUR BW 94H 40K [sort4] => 94 [sort5] => H [sort6] => [price] => 77.63)[2 ] => stdClass对象([item] => 106633 [size] => 2056515 [group] => SEREN [描述] => 205 / 65R15 BS TURANZA SER + 94H 80K [sort4] => 94 [ sort5] => H [sort6] => [price] => 124.07))

我想按[价格]排序。我知道在这个例子中,它们都已按数字顺序排列,但它们并非总是如此。

3 个答案:

答案 0 :(得分:1)

真正的解决方案是修复您的代码,以便在查询中使用order by语句。

那就是说,要在php中执行此操作,请创建一个比较器函数:

function myComparator($a, $b) {
    return $a->price - $b->price;
}

然后,在你的阵列上,我们称之为$myArray,呼叫:

usort($myArray, 'myComparator');

有关详细信息,请参阅php.net documentation on usort

答案 1 :(得分:0)

您可以使用SQL查询本身执行此操作。在查询结尾添加以下内容之一:

升序(最低的第一个):

ORDER BY price ASC

降序(最高优先):

ORDER BY price DESC

答案 2 :(得分:0)

您只需在SQL查询中添加“ORDER BY price DESC(或ASC,具体取决于您的需求)”