카테고리 정렬 관련 도와주세요
본문
카테고리 구현 중인데 정렬에서 자꾸 막히네요ㅠㅠ
구현하려는 내용은
기본적으로 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. 현재 소스는 정렬 순서가 틀림
늦은밤 선배님들의 도움 부탁드립니다.