2016-06-23 16 views
0

私は、次のような形式並べ替え多次元配列

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

どのような最終結果が必要ですか?あなたは作成された日付を抽出しようとしているのか、それとも配列をソートしようとしていますか – SML

+0

私は配列の位置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 
    } 
} 

また、必要に応じて、実行時にデータソース上でこれを行うこともできます。

+1

こんにちは、それはPHPで書かれていないですか? doesntは私に身近に見える。] –

関連する問題