Ios Swift中字典的排序数组

Ios Swift中字典的排序数组,ios,arrays,swift,sorting,dictionary,Ios,Arrays,Swift,Sorting,Dictionary,大家好,我正在尝试使用swift中的sortedby对字典的数组([[“key”:Int,“value”:Any]]格式)进行排序,但它无法工作。这是我的字典数组,这些字典包含一个字典,我在子字典中有一个唯一的标识符,即“id”,我还有唯一的键。请在这方面指导我。实际上,我的数据格式如下。如何使用“id”get值对其进行排序([“isMale”:false,“status:”,“name:“John”,“id”:10)]) var dataArray=[(键:10,值:[“isMale”:fal

大家好,我正在尝试使用swift中的sortedby对字典的数组([[“key”:Int,“value”:Any]]格式)进行排序,但它无法工作。这是我的字典数组,这些字典包含一个字典,我在子字典中有一个唯一的标识符,即“id”,我还有唯一的键。请在这方面指导我。实际上,我的数据格式如下。如何使用“id”get值对其进行排序([“isMale”:false,“status:”,“name:“John”,“id”:10)])

var dataArray=[(键:10,值:[“isMale”:false,“status”:““name”:“John”,“id”:10)],(键:2,值:[“isMale”:false,“status”:““name”:“John”,“id”:2]),(键:3,值:[“isMale”:false,“status”:“,“name”:“John”,“id”:3]),(键:7,值:
[“isMale”:false,“status”:““name”:“John”,“id”:7]),(键:9,值:[“isMale”:false,“status”:““name”:“John”,“id”:9]),(键:4,值:[“isMale”:false,“status”:“John”,“id”:4]),(键:6,值:[“isMale”:false,“name”:“name”:“John”,“id”:6]),(键:5,值:[“isMale”:false,“status”:“name”:“John”,“id”:“id”:5]),(键:8,值:[“isMale”:false,“status”:“,“name”:“John”,“id”:8]),(键:11,值:[“isMale”:false,“status”:“name”:“John”,“id”:11]);
var data=[Int:Any]()data=dataArray.sorted(按:{$0<$1})

您可以按值[“id”]变量对
数据数组进行如下排序:

var dataArray  = [
    (key: 10, value: ["isMale": false, "status": "", "name": "John","id": 10]),
    (key: 2, value: ["isMale": false, "status": "", "name": "John","id": 2]),
    (key: 3, value: ["isMale": false, "status": "", "name": "John","id": 3]),
    (key: 7, value: ["isMale": false, "status": "", "name": "John","id": 7]),
    (key: 9, value: ["isMale": false, "status": "", "name": "John","id": 9]),
    (key: 4, value: ["isMale": false, "status": "", "name": "John","id": 4]),
    (key: 6, value: ["isMale": false, "status": "", "name": "John","id": 6]),
    (key: 5, value: ["isMale": false, "status": "", "name": "John","id": 5]),
    (key: 8, value: ["isMale": false, "status": "", "name": "John","id": 8]),
    (key: 11, value: ["isMale": false, "status": "", "name": "John","id": 11])];

let sorted = dataArray.sorted(by: {
    let id0 = $0.value["id"] as! Int
    let id1 = $1.value["id"] as! Int
    return id0 < id1
})

print(sorted.map { $0.key })
var数据数组=[
(键:10,值:[“isMale”:false,“status:”“name:”“John”,“id:”“10]),
(键:2,值:[“isMale”:false,“status”:“name”:“John”,“id”:2]),
(键:3,值:[“isMale”:false,“status”:“name”:“John”,“id”:3]),
(键:7,值:[“isMale”:false,“status”:“name”:“John”,“id”:7]),
(键:9,值:[“isMale”:false,“status:”,“name:“John”,“id”:9]),
(键:4,值:[“isMale”:false,“status:”“name:”“John”,“id”:4]),
(键:6,值:[“isMale”:false,“status:”“name:”“John”,“id”:6]),
(键:5,值:[“isMale”:false,“status:”,“name:“John”,“id”:5]),
(键:8,值:[“isMale”:false,“status”:“name”:“John”,“id”:8]),
(键:11,值:[“isMale”:false,“status:”“name:”“John”,“id:”“11]);
设sorted=dataArray.sorted(按:{
设id0=$0.value[“id”]as!Int
设id1=$1.value[“id”]as!Int
返回id0
排序的逻辑是什么?换句话说:是什么定义了一个特定的dict在对另一个dict进行排序后应该位于较低的索引中?
let result=dataArray.sorted(排序方式:{($0[“key”]as!Int)<($1[“key”]as!Int)})
排序后,我想得到所有的值,实际上我的数据的格式如下:[(“key”:“a”,“value”:[“isMale”:false,“status”:“name”:“John”,“id”:10],(“key”:“B”,“value”:[“isMale”:false”,“status”:”,“name”:“John”,“id”:2),(“key”:“C”,“value”:[“isMale”:false”,“status”:“name”:“John”,“id”:3])]
var dataArray  = [
    (key: 10, value: ["isMale": false, "status": "", "name": "John","id": 10]),
    (key: 2, value: ["isMale": false, "status": "", "name": "John","id": 2]),
    (key: 3, value: ["isMale": false, "status": "", "name": "John","id": 3]),
    (key: 7, value: ["isMale": false, "status": "", "name": "John","id": 7]),
    (key: 9, value: ["isMale": false, "status": "", "name": "John","id": 9]),
    (key: 4, value: ["isMale": false, "status": "", "name": "John","id": 4]),
    (key: 6, value: ["isMale": false, "status": "", "name": "John","id": 6]),
    (key: 5, value: ["isMale": false, "status": "", "name": "John","id": 5]),
    (key: 8, value: ["isMale": false, "status": "", "name": "John","id": 8]),
    (key: 11, value: ["isMale": false, "status": "", "name": "John","id": 11])];

let sorted = dataArray.sorted(by: {
    let id0 = $0.value["id"] as! Int
    let id1 = $1.value["id"] as! Int
    return id0 < id1
})

print(sorted.map { $0.key })