排序多维数组

时间:2016-06-23 08:51:28

标签: php arrays

我有以下形式的多维数组

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)?

由于

1 个答案:

答案 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
    }
}

您也可以在运行时在数据源上执行此操作,并在需要时执行此操作。