테스트 사이트 - 개발 중인 베타 버전입니다

여분필드 추가 후 정렬하기 채택완료

꽁치입니다 9년 전 조회 3,686

</p><p><?  
$current_time = time(); </p><p>$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);</p><p>// 프로젝트 진행상태 아이콘
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">마   감</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">마   감</span>'; // 프로젝트 마감
}else if($wr_1 > $current_time){
  $ico_state_img = '<span class="tack-icon bg-blue">시작전</span>'; // 프로젝트 시작전
}
?></p><p>
 

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

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

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

 

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

 

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

답변 1개

채택된 답변
+20 포인트
포이치
9년 전

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

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

 

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

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

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

 

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

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

 

로그인 후 평가할 수 있습니다

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

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

로그인