【问题标题】:How can I sort an array by specific value containing class object inside it?如何按包含类对象的特定值对数组进行排序?
【发布时间】:2016-07-05 09:16:42
【问题描述】:

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

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
        )
)

【问题讨论】:

标签: codeigniter


【解决方案1】:

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

您没有显示您的模型代码,但假设您使用的是 Query Builder(也称为 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2014-09-16
    相关资源
    最近更新 更多