簡體   English   中英

如何基於對象鍵-PHP中的值對對象數組進行排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM