>  기사  >  백엔드 개발  >  여러 수준의 하위 슬라이스로 복잡한 데이터 구조를 정렬하는 방법은 무엇입니까?

여러 수준의 하위 슬라이스로 복잡한 데이터 구조를 정렬하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-29 04:10:021011검색

How to Sort Complex Data Structures with Multiple Levels of Child Slices?

여러 수준의 하위 슬라이스로 복잡한 데이터 구조 정렬

이 문서에서는 슬라이스 및 하위 슬라이스가 포함된 복잡한 데이터 구조를 구성하는 방법을 살펴봅니다. 여러 정렬 요구 사항을 존중하여. 다음 시나리오를 고려하십시오.

입력 데이터 구조:

  • 상위 구조체의 일부:

    type Parent struct {
      id       string
      children []Child
    }
  • 각 상위에는 하위 구조체 조각이 있습니다.

    type Child struct {
      id string
    }

목표 정렬:

  1. 상위 조각 정렬 ID 필드별로.
  2. 각 부모에 대해 ID 필드별로 하위 슬라이스를 정렬합니다.

원하는 출력:

[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]

구현:

이러한 정렬 목표를 달성하려면 다음 단계를 수행합니다.

  1. 상위 슬라이스 정렬:

    sort.Slice(parents, func(i, j int) bool {return parents[i].id < parents[j].id})

    이 줄은 내장된 sort.Slice 함수를 사용하여 ID 필드의 오름차순으로 상위 슬라이스를 정렬합니다.

  2. 하위 슬라이스 정렬 :

    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.