PHP의 array_multisort 함수는 여러 배열 또는 다차원 배열을 정렬합니다. 매개변수 배열은 테이블의 열로 처리되고 행별로 정렬됩니다. 이는 SQL의 ORDER BY 절 함수와 유사합니다. 첫 번째 배열은 정렬할 기본 배열입니다. 배열의 행(값)이 동일한 것으로 비교되면 다음 입력 배열의 해당 값의 크기에 따라 정렬됩니다. 참고: 매개변수로 사용되는 배열 요소의 수는 일관되어야 합니다. 그렇지 않으면 오류가 보고됩니다.
먼저 여러 배열을 정렬하는 예를 살펴보겠습니다.
$array1 = array('one'=>'10','two'=>'20','three'=>'20','four'=>10); $array2 = array('one'=>'10','two'=>'30','three'=>'20','four'=>'1'); $array3 = array('one'=>'C','two'=>'A','three'=>'B','four'=>'F'); array_multisort($array1,$array2,$array3); print_r($array1);//Array ( [four] => 10 [one] => 10 [three] => 20 [two] => 20 ) print_r($array2);//Array ( [four] => 1 [one] => 10 [three] => 20 [two] => 30 ) print_r($array3);//Array ( [four] => F [one] => C [three] => B [two] => A )
위의 예에서는 첫 번째 매개변수 배열이 먼저 정렬되고(모든 배열은 기본적으로 오름차순으로 정렬됨) 첫 번째 배열(키 이름 'one')에도 동일한 값이 존재하는 것을 확인할 수 있습니다. '는 '4'와 동일한 키 값을 가지며, 키 이름 'two'와 '3'은 동일한 키 값을 갖기 때문에 첫 번째 배열에서 동일한 값을 정렬할 때 크기에 따라 정렬됩니다. 다음 입력 배열의 해당 값(아니요. 두 배열의 '4' 값이 '1' 값보다 작으므로 4의 값이 1보다 앞에 옵니다) 등입니다.
정렬 순서를 변경하는 예를 살펴보겠습니다.
$array1 = array('one'=>'10','two'=>'20','three'=>'20','four'=>10); $array2 = array('one'=>'10','two'=>'30','three'=>'20','four'=>'1'); $array3 = array('one'=>'C','two'=>'A','three'=>'B','four'=>'F'); array_multisort($array1,SORT_DESC,$array2,SORT_ASC,$array3); print_r($array1);//Array ( [three] => 20 [two] => 20 [four] => 10 [one] => 10 ) print_r($array2);//Array ( [three] => 20 [two] => 30 [four] => 1 [one] => 10 ) print_r($array3);//Array ( [three] => B [two] => A [four] => F [one] => C )
이 예제에서는 첫 번째 배열을 내림차순으로 정렬하고, 동일한 값이 나타나면 두 번째 배열을 오름차순으로 정렬합니다.
참고: 정렬된 배열이 모두 연관 배열인 경우 원래 키 이름이 유지됩니다. 인덱스 배열이 있으면 인덱스가 순서대로 재설정됩니다.
$array1 = array('one'=>'10',2=>'20',3=>'20',4=>10); $array2 = array('one'=>'10','2'=>'30','3'=>'20','four'=>'1'); $array3 = array('one'=>'C','2'=>'A','3'=>'B','four'=>'F'); array_multisort($array1,$array2,$array3); print_r($array1); //Array ( [0] => 10 [one] => 10 [1] => 20 [2] => 20 ) print_r($array2); //Array ( [four] => 1 [one] => 10 [0] => 20 [1] => 30 ) print_r($array3); //Array ( [four] => F [one] => C [0] => B [1] => A )
다차원 배열 정렬.
보통 정렬해야 할 다차원 배열이 있습니다:
$guys = array( array('name'=>'jake', 'score'=>80, 'grade' =>'A'), array('name'=>'jina', 'score'=>70, 'grade'=>'A'), array('name'=>'john', 'score'=>70, 'grade' =>'A'), array('name'=>'ben', 'score'=>20, 'grade'=>'B') ); //例如我们想按成绩倒序排列,如果成绩相同就按名字的升序排列。 //这时我们就需要根据$guys的顺序多弄两个数组出来: $scores = array(80,70,70,20); $names = array('jake','jina','john','ben'); //然后 array_multisort($scores, SORT_DESC, $names, $guys); foreach($guys as $v){ print_r($v); echo "<br/>"; } /* Array ( [name] => jake [score] => 80 [grade] => A ) Array ( [name] => jina [score] => 70 [grade] => A ) Array ( [name] => john [score] => 70 [grade] => A ) Array ( [name] => ben [score] => 20 [grade] => B ) */
관련 권장 사항:
여러 배열 또는 다차원 배열을 정렬하는 php 함수 array_multisort()
10개 관련 기사 array_multisort() 기사 추천
PHP array_multisort() 함수 사용 시 주의 사항
위 내용은 PHP 배열의 array_multisort 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!