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