DB에 없는 값으로 테이블 정렬하기 채택완료
회원정보를 출려가는 테이블을 만들었는데요.
테이블 값 중 하나가 DB에 저장되어 있지 않은 값입니다.
그런데 이값으로 테이블을 정렬할 방법은 없나해서 질문 드립니다.
예를 들어
----------------------
mb_name rate
----------------------
김태희 30
정우성 70
이렇게 되어 있는 테이블을 rate값으로 오름차순과 내림차순을 하고 싶습니다.
이때 rate는 DB에 저장되어 있는 것이 아니라 연산을 통해 새로 얻은 값입니다. (회정정보를 sql_query로 가져온 후 sql_fetch_array에서 rate 계산) 연산량이 많아서 sql안에 넣기는 힘듭니다.
그래서 sql_query를 실행할때 order by로는 오름차순(내림차순)을 못하는것 같습니다.
rate값으로 정렬할 수 있는 방법이 없을까요??
답변 4개
우선 배열을 두개 만드셔서,
첫번째(A)는 2차원배열로 key : mb_id , value : 회원정보
두번째(B) 배열은 1차원배열로 key : mb_id, value : rate
형태로 정의해주시구요,
결과값을 각각 A,B 배열에 넣으신 후 B배열을 가지고
아래 배열 정렬 함수들을 이용하여 소팅 후에 소팅된 B배열의 key값(mb_id)을 가지고 회원 정보 배열(A배열)에서 해당 정보를 가져오면 좋을 듯 합니다.
B배열의 rate값을 가지고 정렬하시면 제생각에는 sort()나 rsort()를 이용하시면 좋을듯하네요^^
그러면 정렬된 B배열의 key값이 mb_id가 될테니... B배열의 key값(mb_id)을 가지고 A배열의 key값으로 불러오면 해당 회원의 정보들이 1차원 배열로 나오겠죠?!^^
- http://php.net/manual/kr/function.arsort.php" rel="rdfs-seeAlso">arsort() - 배열을 내림차순 정렬하고 인덱스의 상관관계를 유지
- http://php.net/manual/kr/function.asort.php" rel="rdfs-seeAlso">asort() - 배열을 정렬하고 인덱스 상관 관계를 유지
- http://php.net/manual/kr/function.ksort.php" rel="rdfs-seeAlso">ksort() - 키에 의한 배열 정렬
- http://php.net/manual/kr/function.rsort.php" rel="rdfs-seeAlso">rsort() - 역순으로 배열 정렬
- http://php.net/manual/kr/function.usort.php" rel="rdfs-seeAlso">usort() - 사용자 정의 비교 함수를 사용하여 값에 의한 배열 정렬
- http://php.net/manual/kr/function.uksort.php" rel="rdfs-seeAlso">uksort() - 사용자 정의 비교 함수를 사용하여 키에 의한 배열 정렬
- http://php.net/manual/kr/function.array-multisort.php" rel="rdfs-seeAlso">array_multisort() - 여러 배열이나 다차원 배열 정렬
- http://php.net/manual/kr/function.krsort.php" rel="rdfs-seeAlso">krsort() - 키에 의한 배열 역순 정렬
- http://php.net/manual/kr/function.natsort.php" rel="rdfs-seeAlso">natsort() - "자연순" 알고리즘으로 배열 정렬
- http://php.net/manual/kr/function.natcasesort.php" rel="rdfs-seeAlso">natcasesort() - "자연순" 알고리즘으로 대소문자를 구분하지 않고 배열 정렬
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인