簡體   English   中英

排序多維數組

[英]Sort multi-dimensional array

我有以下形式的多維數組

array:2 [▼
  "dashboardData" => array:1 [▶]
  "widgetData" => array:5 [▼
    0 => {#214 ▼
      +"_id": "575fcf6d298fbfd833000041"
      +"created": "2016-06-14T09:33:33.492Z"
      +"dashboardid": "575fcebc298fbfd833000036"
      +"datasource": {#215 ▶}
    }
    1 => {#249 ▶}
    2 => {#285 ▶}
    3 => {#297 ▶}
    4 => {#333 ▶}
  ]
]

我已經刪除了很多數據,但是以上數據足以說明我所追求的。 本質上,數組的widgetData部分的元素具有隨機順序。

正如您在上面看到的那樣,數組這一部分的每個元素都有一個創建的值。 是否可以根據創建的日期對數組的這一部分(widgetData)進行排序?

謝謝

因為您的日期使用的是標准UTC日期字符串,所以您可以通過迭代組件並將值分配給原始數組(假設它是變量)來對數組進行排序,即:

let arrayCopy = array
for index in 0..<arrayCopy.count {
    if let widgetData: [[String: AnyObject]] = array[index]["widgetData"] as? [[String: AnyObject]] {
        let sortedWidgetData = widgetData.sort({ (dictionary1, dictionary2) -> Bool in
            return (dictionary1["created"] as! String) < (dictionary2["created"] as! String)
        })
        array[index]["widgetData"] = sortedWidgetData
    }
}

您也可以在需要時在數據源的運行時執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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