如何通过包含类对象的特定值对数组进行排序?

时间:2016-07-05 09:16:43

标签: codeigniter

我想按产品价格按升序对此数组进行排序。我怎么能这样做?

Array
(
    [0] => stdClass Object
        (
            [product_id] => 16
            [product_name] => Ferrari 4802
            [product_details] => I know this car is good. Because I have driven this car 10 year.
            [product_quantity] => 1
            [product_price] => 2560
            [shipping_cost] => 1000
            [product_image] => ./admin_assets/image/uploads/product_image/ea28444f93d1fea413c95861bf306fbf.jpg
            [product_details_image] => ./admin_assets/image/uploads/product_details/ea28444f93d1fea413c95861bf306fbf.jpg
            [thumbnails_image] => ./admin_assets/image/uploads/thumbnails/ea28444f93d1fea413c95861bf306fbf.jpg
            [slidder_image] => ./admin_assets/image/uploads/slidders/ea28444f93d1fea413c95861bf306fbf.jpg
            [status] => 1
            [slidder] => 
            [category_id] => 4
        )

    [1] => stdClass Object
        (
            [product_id] => 15
            [product_name] => Laborghini urus
            [product_details] => I know this car is good. Because I have driven this car 10 year.
            [product_quantity] => 2
            [product_price] => 500
            [shipping_cost] => 1000
            [product_image] => ./admin_assets/image/uploads/product_image/68a7eb1c6bf5b3b43f0c3fd4ed143c68.jpg
            [product_details_image] => ./admin_assets/image/uploads/product_details/68a7eb1c6bf5b3b43f0c3fd4ed143c68.jpg
            [thumbnails_image] => ./admin_assets/image/uploads/thumbnails/68a7eb1c6bf5b3b43f0c3fd4ed143c68.jpg
            [slidder_image] => ./admin_assets/image/uploads/slidders/68a7eb1c6bf5b3b43f0c3fd4ed143c68.jpg
            [status] => 1
            [slidder] => 
            [category_id] => 4
        )

    [2] => stdClass Object
        (
            [product_id] => 14
            [product_name] => Laborghini hurican023
            [product_details] => I know this car is good. Because I have driven this car 10 year.
            [product_quantity] => 4
            [product_price] => 50
            [shipping_cost] => 1000
            [product_image] => ./admin_assets/image/uploads/product_image/65e660ef6e3ebcb0773d87c048c93e1b.png
            [product_details_image] => ./admin_assets/image/uploads/product_details/65e660ef6e3ebcb0773d87c048c93e1b.png
            [thumbnails_image] => ./admin_assets/image/uploads/thumbnails/65e660ef6e3ebcb0773d87c048c93e1b.png
            [slidder_image] => ./admin_assets/image/uploads/slidders/65e660ef6e3ebcb0773d87c048c93e1b.png
            [status] => 1
            [slidder] => 
            [category_id] => 4
        )
)

1 个答案:

答案 0 :(得分:0)

因为数组是由数据库查询生成的,所以您可以轻松地让查询为您进行排序。

您不显示模型代码,但假设您使用的是查询生成器(a.k.a.Active Record),则在执行$this->db->get()之前,您需要在模型中使用以下内容。

$this->db->order_by('product_price', 'ASC');

以下是一些显示完整查询的示例代码。它假设该表名为“products”,您希望选择所有表的字段,并且只需要特定的“category_id”。

在模型文件中:

public function product_by_category($category)
{
    $query = $this->db
        ->where('category_id', $category)
        ->order_by('product_price', 'ASC')
        ->get('products'); 

    //return all records or NULL if no records are found
    return $query->num_rows() > 0 ? $query->result() : NULL;
}