我需要按字母顺序对对象数据进行排序

时间:2019-04-07 16:40:35

标签: php mysql

我有一班鞋子,由ID,品牌,价格,尺寸组成。 另外,我已经有一个sql数据库,可以从中获取鞋子的数据。

我创建一个具有6列的视图类Shoes。前面提到的4个和另外两个带有剩余可用鞋子的数量,另一个带有“购买”按钮。

我希望view_shoes中的表格以品牌的字母顺序显示鞋子。这样我就可以

1.Adidas 
2.Geox 
3.Puma 
4.Reebok.

而不是

1.Reebok 
2.Puma 
3.Adidas 
4. Geox

我找不到太多的信息。我找到了usortasort之类的函数,但是我不知道如何实现它们。

这是鞋子的功能。

public static function shoes() {
    $query = self::execute("SELECT * FROM shoes", array());
    $data = $query->fetchAll();
    $shoes = [];
    foreach ($data as $row) {
        $shoes[] = new shoe($row['id'], $row["brand"], $row["price"], $row["size"]);
    }
    return $shoes;
}

3 个答案:

答案 0 :(得分:2)

在查询中的ORDER BY列中使用brand

$query = self::execute("SELECT * 
                         FROM shoes 
                         ORDER BY brand ASC"
                       , array());

答案 1 :(得分:1)

您可以修改SQL查询以应用排序

SELECT * FROM shoes

替换为

SELECT * FROM shoes ORDER BY brand ASC

或者如果sort()是数组,则可以在$shoes上使用$shoes函数

sort($shoes);

答案 2 :(得分:0)

编写自定义比较器进行排序。

usort($shoes,function ($a,$b){
    return strcmp($a->brand,$b->brand);
    //return strcmp($a['brand'],$b['brand']);
})