Swift 3
extension Array where Element: Hashable {
func getSorted(by: Array) -> Array {
var d = Dictionary()
for value in self {
for i in 0 ..< by.count {
if value as! String == by[i] {
d[i] = value as? String
}
}
}
var sortedValues = Array()
for key in d.keys.sorted(by: <) {
sortedValues.append(d[key]!)
}
return sortedValues
}
}