PHP array_multisort 함수를 사용하여 데이터베이스 결과의 복잡한 정렬을 수행하는 방법

高洛峰
풀어 주다: 2023-03-04 16:54:01
원래의
1234명이 탐색했습니다.

먼저 요구 사항에 대해 이야기해 보겠습니다. 데이터베이스에는 id, 볼륨, 버전, 이름의 4개 필드가 있습니다. 쿼리 결과를 볼륨+버전에 따라 큰 것부터 작은 것 순으로 정렬해야 합니다.
다음은 array_multisort 함수입니다
array_multisort()는 여러 배열을 한 번에 정렬하거나 다차원 배열을 특정 차원 또는 다차원에 따라 정렬하는 데 사용할 수 있습니다.

연관(문자열) 키 이름은 변경되지 않지만 숫자 키 이름은 다시 색인화됩니다.

정렬 순서 플래그:
SORT_ASC - 오름차순으로 정렬
SORT_DESC - 내림차순으로 정렬

정렬 유형 플래그:
SORT_REGULAR - 일반적인 방법으로 항목 비교
SORT_NUMERIC - 숫자 값을 기준으로 항목 비교 ​​
SORT_STRING - 문자열을 기준으로 항목 비교

각 배열 뒤에 두 개의 유사한 정렬 플래그를 지정할 수 없습니다. 각 배열 뒤에 지정된 정렬 플래그는 해당 배열에 대해서만 유효합니다. 이전에는 기본값 SORT_ASC 및 SORT_REGULAR이 사용되었습니다.

입력 배열은 테이블 열로 처리되고 행별로 정렬됩니다. 이는 SQL의 ORDER BY 절 기능과 유사합니다. 첫 번째 배열은 정렬할 기본 배열입니다. 배열의 행(값)이 동일한 것으로 비교되면 다음 입력 배열의 해당 값의 크기에 따라 정렬됩니다.

이 함수의 매개변수 구조는 다소 특이하지만 매우 유연합니다. 첫 번째 매개변수는 배열이어야 합니다. 다음 각 인수는 아래 나열된 배열 또는 정렬 플래그일 수 있습니다.

이제 이러한 데이터 세트가 생겼습니다

// 这是一组从数据库查询出来的结果
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
//我们需要先做出一个volume+edition的数组来
foreach($data as $val){
     $arr[] = $val['volume'] + $val['edition']; 
}
// 将$arr根据降序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($arr, SORT_DESC, $data);
로그인 후 복사

이것은 우리에게 필요한 기능을 달성합니다

추가 데이터베이스의 복잡한 정렬을 수행하기 위해 php array_multisort 함수를 사용하는 방법 결과 관련 기사는 PHP 중국어 홈페이지를 주목해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿