2차배열중에서 몇몇 필드값만으로 정렬하기 (DB아님)

chiro

###########################################
# 2차원 배열을 중 몇몇 필드만 sort하는 방법 #
###########################################

phpschool에서 검색을 해서 2차원 배열에서 몇몇 필드값을 이용해서 정렬하는 방법을
찾았지만 없어서 php메뉴얼을 뒤졌습니다. 결국 array_multisort 를 찾게 되었습니다.
아래는 그 결과물을 정리해서 올립니다. 그냥 참조하시고 많은 리플 바랍니다.

##############################################################################
$arr[0] = array(0=>’1990-10-10′,1=>1,2=>’홍길동’,3=>20000,4=>’제목1′);
$arr[1] = array(0=>’2001-10-10′,1=>4,2=>’김길동’,3=>15000,4=>’제목2′);
$arr[2] = array(0=>’2003-10-10′,1=>3,2=>’박길동’,3=>30000,4=>’제목3′);
$arr[3] = array(0=>’2000-10-10′,1=>2,2=>’한길동’,3=>18000,4=>’제목4′);
$arr[4] = array(0=>’1998-10-10′,1=>5,2=>’chiro’,3=>10000,4=>’제목5′);

foreach ($arr as $key => $row) {
$aaa[$key] = $row[0]; // 날짜임
$bbb[$key] = $row[1]; // 순위
$ccc[$key] = $row[2]; // 이름
$ddd[$key] = $row[3]; // 가격
$eee[$key] = $row[4]; // 제목임
}

array_multisort($aaa, SORT_ASC, $eee, SORT_ASC, $arr); // 날짜과 제목를 정렬하는 경우
// array_multisort($bbb, SORT_ASC, $aaa, SORT_ASC, $arr); // 순위와 날짜를 정렬하는 경우
// array_multisort($ccc, SORT_ASC, $aaa, SORT_ASC, $arr); // 이름과 순위를 정렬하는 경우
// array_multisort($bbb, SORT_ASC, $aaa, SORT_ASC, $ccc, SORT_ASC, $arr); // 순위와 날짜와 이름을 정렬하는 경우
reset($arr);

// print_r($arr);

while (list($key, $val) = each($arr)) {
echo “$val[0] – $val[1] – $val[2] – $val[3] – $val[4]”;
echo “
“;
}
?>

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다