我有以下形式的多维数组
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)?
由于
答案 0 :(得分:0)
因为您的日期使用的是标准的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
}
}
您也可以在运行时在数据源上执行此操作,并在需要时执行此操作。