[英]How to sort an Array of Objects based on object key - values in PHP?
給定一個對象數組,其中數組中的每個對象如下所示:
"success": true,
"data": [
{
"doctor_id": 4, -- Use this id for getting in method get inquiry doctor offers.
"clinic": "John",
"distance": "10 mile"
"city": "Los Angeles",
"price": "123",
"photo": false,
"rating": {
"stars": null,
"reviews": null
},
"add_info"=> "Some information",
"time_after_create": 942 -- in seconds.
}
]
php中是否有任何方法可以讓我按照$ data->價格從低到高和從高到低的$data->rating->stars
排序,然后再按$data->rating->stars
進行排序,其中stars是0到5之間的數字?
我在這里看到了有關array_multisort()的答案。
但我不確定它能否達到我的期望。
歡迎任何想法或見解。
使用usort ,這是一個示例:
function cmp($a, $b)
{
return strcmp($a->name, $b->name);
}
usort($your_data, "cmp");
您的情況下,我可以快速提出以下解決方案:
function cmp($a, $b)
{
if ($a->price == $b->price) {
return 0;
}
return ($a->price < $b->price) ? -1 : 1;
}
usort($your_data, array($this, "cmp"));
注意:“ cmp”是可調用的函數(必須用於PHP> 5.3)
解碼此json時,也許應該使用$ assoc參數。 它將以數組而不是對象的形式為您提供數據,以便您可以對該數組進行排序。 json_decode
$array1 = json_decode($input, TRUE);
我認為,如果您在php中閱讀了對象迭代 ,它也會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.