【问题标题】:How to sort multidimensional array in swift?如何快速排序多维数组?
【发布时间】:2016-04-19 11:38:48
【问题描述】:

我需要你的帮助。我做了一个数组,当我在不同的设备或模拟器上启动我的应用程序时,这个数组被分类为不同的类型,但我需要在每个设备上使用相同的顺序。该怎么做?

    var settings = [String: [ [String: String] ]]()
    settings = [ "cards":[ ], "groups":[ ] ]

    ...

    for card in db.prepare(table.order(orderN.asc)) {
       settings["cards"]?.append(["id":String(card[id]), "group_id":String(card[group_id]), "service":card[service], "bgcolor":card[bgcolor], "logoimg":card[logoimg]!, "balance_desc":card[balance_desc], "balance":"0.0", "balance_id":String(card[balance_id]), "uniqueID":card[uniqueID], "balance_currency":String(card[balance_currency]), "orderN":String(card[orderN])])
    }

    ...

    for group in db.prepare(table.order(orderN.asc)) {  
       settings["groups"]?.append(["name":group[name]!,"id":String(group[id]),"orderN":String(group[orderN])])
    }

    ...

例如, 在第一台设备上

print(settings) // ["cards": [["orderN": "0", "bgcolor": "0.0, 0.0, 0.0, 1.0", "balance": "0.0", "logoimg": "example.com/images/img.png", "uniqueID": "00a2413f74f4a3f186e439a67057de67", "group_id": "2", "id": "1", "service": "servicename", "balance_desc": "Description", "balance_id": "1", "balance_currency": "1"]], "groups": [["orderN": "0", "name": "GroupName", "id": "2"]]]

在第二台设备上

print(settings) // ["cards": [["orderN": "0", "uniqueID": "00a2413f74f4a3f186e439a67057de67", "service": "servicename", "id": "1", "bgcolor": "0.0, 0.0, 0.0, 1.0", "balance_currency": "1", "balance": "0.0", "group_id": "2", "logoimg": "example.com/images/img.png", "balance_id": "1", "balance_desc": "Description"]], "groups": [["id": "2", "orderN": "0", "name": "GroupName"]]]

感谢您的关注。

【问题讨论】:

  • 到目前为止你一直在尝试什么?

标签: ios arrays swift multidimensional-array


【解决方案1】:

这是因为settings 不是Array,而是Dictionary。字典中键值对的顺序未定义。

如果您需要一些特定的顺序,您应该重新实现settings,可能将它们分开structclass,因为您将很难使用嵌套字典。

【讨论】:

  • 我需要在所有设备上都有相同的顺序,其他的没关系。
  • 好的,您可以获取字典的键并对其进行排序。例如,settings["cards"][0].keys.sort()。然后遍历这些键。
猜你喜欢
  • 2018-02-08
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
相关资源
最近更新 更多