mysql에서 in 문을 사용하여 얻은 결과와 같이 데이터베이스 쿼리 결과를 직접 사용할 수 없는 경우가 있으므로 결과를 어떤 방식으로든 정렬해야 합니다.
예 4. 데이터베이스 결과 정렬
이 예에서 데이터 배열의 각 셀은 테이블의 행을 나타냅니다. 이는 데이터베이스에 기록된 일반적인 데이터 모음입니다.
예제의 데이터는 다음과 같습니다.
볼륨 에디션 |
------+---------
67 |2
86 | 1
85 | 6
98 | 2
86 |6
67 |7
데이터는 모두 data라는 배열에 저장됩니다. 이는 일반적으로 mysql_fetch_assoc()과 같은 루프를 통해 데이터베이스에서 가져옵니다.
$data[] = array('볼륨' => 67, '에디션' => 2);
$data[] = array('볼륨' => 86, '에디션' => 1);
$data[] = array('볼륨' => 85, '에디션' => 6);
$data[] = array('볼륨' => 98, '에디션' => 2);
$data[] = array('볼륨' => 86, '에디션' => 6);
$data[] = array('볼륨' => 67, '에디션' => 7);
?>
http://sucai.knowsky.com/
이 예에서는 볼륨이 내림차순으로 정렬되고 에디션이 오름차순으로 정렬됩니다.
이제 행이 있는 배열이 생겼지만 array_multisort()에는 열이 있는 배열이 필요하므로 다음 코드를 사용하여 열을 가져온 다음 정렬하세요.
// 열 목록을 가져옵니다.
foreach ($data를 $key => $row) {
$volume[$key] = $row['볼륨'];
$edition[$key] = $row['에디션'];
}
// 데이터를 볼륨에 따라 내림차순, 에디션에 따라 오름차순으로 정렬합니다.
// $data를 마지막 매개변수로 사용하고, 공통 키로 정렬합니다.
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
이제 데이터 수집이 정렬되었으며 결과는 다음과 같습니다
.
------+---------
98 | 2
86 | 1
86 |6
85 | 6
67 |2
67 |7