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

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

QA

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

답변 1

본문

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

 

구현하려는 내용은

기본적으로 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. 현재 소스는 정렬 순서가 틀림

 

 

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


 

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로