現在、私は多くのユーザーでテーブルビューを持っていますが、昇順または降順だけでなく、特定の順序でユーザーを並べ替えたいと思います。次のユーザーがいる配列があるとします。子供のクラスにあるすべての学生は、すべての数字を持つクラス(順番に)、すべてのジュニアに続いて、表示すべき最初のものであるように。私は私の配列を注文することができますどのようにSwift - 配列のサブセットを並べ替えます。
"User1", "1st grade"
"User2", "1st grade"
"User3", "kids"
"User4", "6th grade"
"User5", "5th grade"
"User6", "2nd grade"
"User7", "kids"
"User8", "juniors"
私はこの
"User3", "kids"
"User7", "kids"
"User1", "1st grade"
"User2", "1st grade"
"User6", "2nd grade"
"User5", "5th grade"
"User4", "6th grade"
"User8", "juniors"
編集を表示することができ、配列をしたい: アレイが2列だけではなく、1つの文字列を持っていることを明確にするテキストを更新しました。
は、あなたがそれらを個別に並べ替えた後、適切な結果を得るためにfilter
を使用して、3つの別々の配列を作成する必要があり
let sortedArray =
self.userArray.sorted(by: { $0.SchoolGrade!.gradeLongName().contains("Kids") ||
$1.SchoolGrade!.gradeLongName().contains("Juniors") })
あなたのオブジェクトの構造は何ですか?それが '[[String]]'の場合は、データモデルを変更することができます。その他https://stackoverflow.com/questions/34957771/sort-a-array-according-to-another-array-swift?文字列だけではないため、 "age/class"ロジックを定義します。 – Larme
私は以下の答えを使ってそれを修正しました。私の構造体にはデータベースと同じものが含まれています。大部分はintで、2番目の列(等級)のintを含みます。グレードのテキスト自体ではなく、グレードのintを使って配列を並べ替えることができるので、私はそれを調べます。ありがとう! –