$list 배열 재정렬후 출력순서 변경

$list 배열 재정렬후 출력순서 변경

QA

$list 배열 재정렬후 출력순서 변경

답변 2

본문

안녕하세요.

 

$list 배열 재정렬에 대해 문의드려요. 실력이 너무허접해서 도와주세요 ㅠ_ㅠ

 

만약 글이 10개있고

 

$list[0~9] 이있다고 가정하면

 

예를들어 $list[$i]['wr_hit'] 1개당 5점

$list[$i]['wr_good']은 1개당 10점

 

이렇게해서 점수를 매겨서

 

배열순서자체를 $list[1]번이 점수가높다면 점수가 낮은 $list[9]랑 바꿔서 출력순서를 바꾸고싶습니다.

 

어렵네요 ㅠㅠ 도와주세요.

foreach를 쓰면되는거같은데 잘안되네요 

이 질문에 댓글 쓰기 :

답변 2

해결한 방법도 남기면 도움이 되겠죠?

+ array_multisort() 함수를 사용하면 편합니다. usort() 함수를 사용하는 방법 등 다양한데 생략.

- https://www.php.net/manual/en/function.array-multisort.php

- http://docs.php.net/manual/kr/function.array-multisort.php

아래는 점수로 정렬인데, 정렬 조건 추가가 간편합니다. 예) 동점일 때 두 번째 정렬 기준 이름순이나 가입순 등


$order = []; // 정렬값
foreach ( $list as $k=>$val ) {
    $order[] = $list[$k]['score'] = $val['wr_hit']*5 + $val['wr_good']*10;
}
array_multisort($order, SORT_ASC, SORT_NUMERIC, $list); // 점수순 / SORT_DESC 점수역순
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 42
© SIRSOFT
현재 페이지 제일 처음으로