Arrays 在swift中分别对两个字符串数组进行排序

Arrays 在swift中分别对两个字符串数组进行排序,arrays,swift,string,sorting,date,Arrays,Swift,String,Sorting,Date,我正在寻找一种简单的方法对2个数组进行排序,一个包含日期,另一个包含每个特定日期的时间(ar1第一位的日期与ar2第一位的时间匹配) 输出:[“2014-02-13”、“2014-04-02”、“2014-04-18”、“2015-03-17”、“2016-03-01”] 我需要将ar2分别更改为ar1 ar2 needs to be : ["08:11:57", "08:11:18", "08:11:01", "08:11:34", "08:11:43"] 您可以压缩(::)两个数组ar1和

我正在寻找一种简单的方法对2个数组进行排序,一个包含日期,另一个包含每个特定日期的时间(ar1第一位的日期与ar2第一位的时间匹配)

输出:[“2014-02-13”、“2014-04-02”、“2014-04-18”、“2015-03-17”、“2016-03-01”]

我需要将ar2分别更改为ar1

ar2 needs to be : ["08:11:57", "08:11:18", "08:11:01", "08:11:34", "08:11:43"]
您可以
压缩(::)
两个数组
ar1
ar2
,并基于
ar1
对结果数组调用
排序(:)
,即

let result = zip(ar1, ar2).sorted { $0.0 < $1.0 }

let sortedAr1 = result.map({ $0.0 }) //["2014-02-13", "2014-04-02", "2014-04-18", "2015-03-17", "2016-03-01"]

let sortedAr2 = result.map({ $0.1 }) //["08:11:57", "08:11:18", "08:11:01", "08:11:34", "08:11:43"]
let result=zip(ar1,ar2)。排序{$0.0<$1.0}
让sortedAr1=结果图({$0.0})/[“2014-02-13”、“2014-04-02”、“2014-04-18”、“2015-03-17”、“2016-03-01”]
让sortedAr2=result.map({$0.1})/[“08:11:57”,“08:11:18”,“08:11:01”,“08:11:34”,“08:11:43”]
除了使用
zip
,您还可以创建
struct/class
实例的
数组
,其中每个实例存储
ar1
ar2
中的相应元素。然后根据
ar1
值对
array
进行排序


如果您同意将结构从2
String
array
更改为单个
struct
array
创建一个结构或类来存储数据,那么这是一种更好的方法。然后创建该类/结构的数组并按日期排序

struct MyDates{
变量日期:字符串
变量时间:字符串
}
让date1=MyDates(日期:“2014-02-13”,时间:“08:11:57”)
让date2=MyDates(日期:“2016-03-01”,时间:“08:11:43”)
var arrayDate=[date2,date1]
arrayDate.sort{$0.date<$1.date}

您需要使用结构将这两个值存储在一个数组中。然后根据所需的字符串变量对数组进行排序。请共享您尝试对第一个数组进行排序的代码,即,
ar1
?考虑到数据类型,另一个选项是将每对元素连接到一个日期/时间字符串中,甚至将它们解析为一个
日期
对象
let result = zip(ar1, ar2).sorted { $0.0 < $1.0 }

let sortedAr1 = result.map({ $0.0 }) //["2014-02-13", "2014-04-02", "2014-04-18", "2015-03-17", "2016-03-01"]

let sortedAr2 = result.map({ $0.1 }) //["08:11:57", "08:11:18", "08:11:01", "08:11:34", "08:11:43"]