먼저 요구 사항에 대해 이야기해 보겠습니다. 데이터베이스에는 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 중국어 홈페이지를 주목해주세요!