여분필드 추가 후 정렬하기
본문
<?
$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">마 감</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>'; // 프로젝트 시작전
}
?>
위 와같은 함수를 써서 진행상황을 표현 하는데,
list 에서 정렬을 시킬때 보통은 DB 필드를 호출 함으로 정렬을 시키는데,
혹시, 다른 방법으로 정렬이 가능 할까요?
진행중/마감/시작전 이런 식의 정렬은 힘들까요?
!-->
답변 1
order by 문 없이 그누에서 리턴에준 배열의 특정 필드값으로의 정렬을 말씀이신가요?
여러가지 방법이 있습니다만..
for문으로 한번 돌려서 $list 를 재 배열 시키는것과
php 기본 함수인 array_multisort 함수로 $list 를 재 배열 시키는것입니다.
http://php.net/manual/en/function.array-multisort.php
order by 가 사용 가능하시다면..
order by 에도 조건이 가능하니 더할나위 없이 좋구요.
답변을 작성하시기 전에 로그인 해주세요.