2016-07-05 140 views
-1

我想按产品价格按升序对这个数组进行排序。我怎样才能做到这一点?如何通过包含类对象的特定值对数组进行排序?

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

的可能的复制(http://stackoverflow.com/questions/10000005/php-sort-array-by-field) –

+0

这个stdClass对象数组是数据库查询的结果吗? – DFriend

+0

看看这里http://www.codeigniter.com/user_guide/database/query_builder.html#ordering-results – user4419336

回答

0

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

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

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

以下是显示完整查询的一些示例代码。它假设表格被命名为'products',你想要选择所有表格的字段,并且只需要特定的'category_id'。

在Model文件:[?由字段PHP排序阵列]

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; 
} 
相关问题