複数レベルの子スライスを持つ複雑なデータ構造の並べ替え
この記事では、スライスとサブスライスを含む複雑なデータ構造を整理する方法について説明します。複数の並べ替え要件を尊重することによって。次のシナリオを考えてみましょう:
入力データ構造:
親構造体のスライス:
type Parent struct { id string children []Child }
各親には子構造体のスライスがあります:
type Child struct { id string }
並べ替え目標:
必要な出力:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
実装:
これらの並べ替えの目標を達成するには、次の手順が実行されます:
親スライスを並べ替えます:
sort.Slice(parents, func(i, j int) bool {return parents[i].id < parents[j].id})
この行は、組み込みの sort.Slice 関数を使用して、親スライスを ID フィールドの昇順に並べ替えます。
子スライスの並べ替え:
for _, parent := range parents { sort.Slice(parent.children, func(i, j int) bool {return parent.children[i].id < parent.children[j].id}) }
このループは、並べ替えられた親スライス内の各親を反復し、sort.Slice の別のインスタンスを使用して、各親の子スライスを ID フィールドの昇順で並べ替えます。
これらの手順に従うことで、複雑なデータ構造を効果的に並べ替えて、指定された並べ替え要件を満たすことができ、目的の出力形式が得られます。
以上が複数レベルの子スライスを持つ複雑なデータ構造をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。