카테고리 정렬 관련 도와주세요

카테고리 정렬 관련 도와주세요

QA

카테고리 정렬 관련 도와주세요

본문

카테고리 구현 중인데 정렬에서 자꾸 막히네요ㅠㅠ

 

구현하려는 내용은

기본적으로 code 순서로 출력되고, 같은 레벨에서는 order 순서로 출력되었으면 하는데,

이게 잘 안됩니다.

 

<현재 소스>

---------------------------------------------------------------------------------

$data[] = array('code' => 10, 'pcode' =>'', 'depth' => 1, 'order' => 2);
$data[] = array('code' => 1010, 'pcode' =>10, 'depth' => 2, 'order' => 2);
$data[] = array('code' => 1020, 'pcode' =>10, 'depth' => 2, 'order' => 1);
$data[] = array('code' => 1030, 'pcode' =>10, 'depth' => 2, 'order' => 3);
$data[] = array('code' => 20, 'pcode' =>'', 'depth' => 1, 'order' => 2);
$data[] = array('code' => 2010, 'pcode' =>20, 'depth' => 2, 'order' => 1);
$data[] = array('code' => 2020, 'pcode' =>20, 'depth' => 2, 'order' => 2);
$data[] = array('code' => 30, 'pcode' =>'', 'depth' => 1, 'order' => 3);
$data[] = array('code' => 40, 'pcode' =>'', 'depth' => 1, 'order' => 5);
$data[] = array('code' => 50, 'pcode' =>'', 'depth' => 1, 'order' => 1);

 

// 열 목록 얻기
foreach ($data as $key => $row) {
    $pcode[$key] = $row['pcode'];
    $depth[$key] = $row['depth'];
    $order[$key] = $row['order'];
}

 

// code 내림차순, order 오름차순으로 데이터를 정렬
// 공통 키를 정렬하기 위하여 $data를 마지막 인수로 추가
array_multisort($pcode, SORT_ASC, $order, SORT_ASC, $data); 

 

print_r($data);

---------------------------------------------------------------------------------

 

<원하는 정렬 순서>


code:50
code:10
code:1020
code:1010
code:1030
code:20
code:2010
code:30
code:40

 

*참고

1. coder:50이 order가 작아 가장 먼저 출력되어야 함

2. code:10과 code:20은 order가 같지만, 값이 작은 code:10가 먼저 출력되어야 함

3. 현재 소스는 정렬 순서가 틀림

 

 

늦은밤 선배님들의 도움 부탁드립니다.


 

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 123,671 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT