php
php 다차원 배열 랭크 정렬등
관절분리
2023. 2. 2. 16:35
반응형
개발 중인 소스
디비내용을 배열에 넣어놓고
각 배열의 카운트에 랭킹을 매기고
배열로 리턴
$arr = array();
$arry = array();
$s1="select ac.*,cp.COOP_NM from ".$tb_name." as ac
join COOP_MNG as cp
on (vio.COOP_IDX=cp.IDX)
".$where ;
$q1 = mysqli_query($con,$s1);
while($rst=@mysqli_fetch_array($q1)){
$arr[1][$rst['COOP_NM']]++;
$arr[2][$PTTNarr[$rst['PTTN']][1]]++;
$arr[3][$PTTNarr[$rst['PTTN']][0]]++;
}
//벌점 순위
$num1 = array();
foreach($arr[1] as $ar){
$num1[] = $ar;
}
foreach($arr[1] as $key=>$ar){
$arry[1][$key] = array($ar,rank($ar, $num1));
}
$sort = array();
foreach ($arry[1] as $key => $ar) {
$sort[$key] = $ar[1];
}
array_multisort($sort, SORT_ASC, $arry[1]);
//유형별 순위
$num2 = array();
foreach($arr[2] as $ar){
$num2[] = $ar;
}
foreach($arr[2] as $key=>$ar){
$arry[2][$key] = array($ar,rank($ar, $num2));
}
$sort = array();
foreach ($arry[2] as $key => $ar) {
$sort[$key] = $ar[1];
}
array_multisort($sort, SORT_ASC, $arry[2]);
//등급별 순위
$num3 = array();
foreach($arr[3] as $ar){
$num3[] = $ar;
}
foreach($arr[3] as $key=>$ar){
$arry[3][$key] = array($ar,rank($ar, $num3));
}
function rank($value, $arr) {
$sorted = $arr;
rsort($sorted);
$rank = array_search($value,$sorted);
if($rank !== false ) return $rank+1;
return false;
}
참고 사이트
https://zetawiki.com/wiki/PHP_rank()
PHP rank() - 제타위키
다음 문자열 포함...
zetawiki.com
https://ponyozzang.tistory.com/218
PHP array_multisort 다차원 배열 정렬 예제
1차원 배열의 경우에는 간단하게 정렬을 할 수 있습니다.2차원 배열등 다차원 배열의 경우에는 어떻게 하는지 확인을 해보도록 하겠습니다. $array = array( array( 'id' => 0, 'track_num' => 7, 'title' => 'FAKE L
ponyozzang.tistory.com
반응형