【发布时间】:2017-12-02 16:52:00
【问题描述】:
我有一个如下所示的数组。我想用 srp 值按升序对其进行排序。我怎样才能在 PHP 中做到这一点。我是初学者,我认为可以使用 usort() 来完成,但不知道该怎么做。
Array
(
[0] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d3
[title] => Zen M4S(Silver)
[mrp] => 0
[srp] => 1900
)
[1] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d2
[title] => Zen M4S(Silver)
[mrp] => 0
[srp] => 1000
)
[2] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d4
[title] => JIVI X525(Red)
[mrp] => 0
[srp] => 1250
)
)
所需的输出:
Array
(
[0] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d2
[title] => Zen M4S(Silver)
[mrp] => 0
[srp] => 1000
)
[1] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d4
[title] => JIVI X525(Red)
[mrp] => 0
[srp] => 1250
)
[2] => stdClass Object
(
[_id] => 5911af8209ed4456d069b1d3
[title] => Zen M4S(Silver)
[mrp] => 0
[srp] => 1900
)
)
我的班级看起来像这样:
class TopDealsDAOMongoImpl implements TopDealsDAO{ //put your code here public function getTopDeals() { $topDeals = json_decode(json_encode(MasterAffiliateProductMappingMongo::select("product_id","affiliate_id","title","our_product_id","mrp","srp","product_url","category_name","ID")->where('top_deal','true')->get())); function my_sort($a,$b) { if ($a->srp == $b->srp) return 0; return ($a->srp < $b->srp)?-1:1; } uasort($topDeals, 'my_sort'); } }
【问题讨论】:
-
那里提供的答案会产生错误:不能使用 stdClass 类型的对象作为数组
-
在 SO 上发布问题之前。尝试自我解决和研究。当您发布重复的问题时,您会造成网站膨胀并浪费志愿者的时间。
-
研究更多/其他关于 SO 的问题。这是重复的。