채택완료

여분필드 추가 후 정렬하기

2016-10-25 (화) 15:36:10 3,971
Copy
<?  $current_time = time(); $wr_1 = strtotime($list[$i][wr_1]) + ($list[$i][wr_2] * 3600); // 시작날짜 + 시작시간 계산$wr_3 = strtotime($list[$i][wr_3]) + ($list[$i][wr_4] * 3600); // 마감날짜 + 마감시간 계산  $wr_1_text = date("Y년 m월 d일", $wr_1);$wr_3_text = date("Y년 m월 d일", $wr_3); // 프로젝트신청인원 체크$sql_event_total = " select count(*) as cnt_total from g5_event_request where bo_table = '$bo_table' and wr_id = '$wr_id' ";$row_event_total = sql_fetch($sql_event_total);// 프로젝트 진행상태 아이콘if($wr_1 < $current_time && $wr_3 > $current_time){ if($view[wr_5] == 0 ){  // 프로젝트 진행중  $ico_state_img = '<span class="tack-icon bg-orangered">진행중</span>'; }else if( $row_event_total[cnt_total] >= $view[wr_5] ){  // 프로젝트 신청인원 마감  $ico_state_img = '<span class="tack-icon bg-gray">마&nbsp;&nbsp;&nbsp;감</span>';   }else{  $ico_state_img = '<span class="tack-icon bg-orangered">진행중</span>'; // 프로젝트 진행중 }}else if($wr_3 < $current_time){  $ico_state_img = '<span class="tack-icon bg-gray">마&nbsp;&nbsp;&nbsp;감</span>'; // 프로젝트 마감}else if($wr_1 > $current_time){  $ico_state_img = '<span class="tack-icon bg-blue">시작전</span>'; // 프로젝트 시작전}?>
 

위 와같은 함수를 써서 진행상황을 표현 하는데,

list 에서 정렬을 시킬때 보통은 DB 필드를 호출 함으로 정렬을 시키는데,

혹시, 다른 방법으로 정렬이 가능 할까요? 

진행중/마감/시작전   이런 식의 정렬은 힘들까요?

|

답변 1개

채택된 답변
+20 포인트

order by 문 없이 그누에서 리턴에준 배열의 특정 필드값으로의 정렬을 말씀이신가요?

여러가지 방법이 있습니다만..

for문으로 한번 돌려서 $list 를 재 배열 시키는것과

php 기본 함수인 array_multisort 함수로 $list 를 재 배열 시키는것입니다.

http://php.net/manual/en/function.array-multisort.php 

order by 가 사용 가능하시다면..

order by 에도 조건이 가능하니 더할나위 없이 좋구요.

답변을 작성하려면 로그인이 필요합니다.