>백엔드 개발 >PHP 튜토리얼 >PHP 배열의 array_multisort 함수에 대한 자세한 설명

PHP 배열의 array_multisort 함수에 대한 자세한 설명

小云云
小云云원래의
2018-03-27 15:01:123252검색

PHP의 array_multisort 함수는 여러 배열 또는 다차원 배열을 정렬합니다. 매개변수 배열은 테이블의 열로 처리되고 행별로 정렬됩니다. 이는 SQL의 ORDER BY 절 함수와 유사합니다. 첫 번째 배열은 정렬할 기본 배열입니다. 배열의 행(값)이 동일한 것으로 비교되면 다음 입력 배열의 해당 값의 크기에 따라 정렬됩니다. 참고: 매개변수로 사용되는 배열 요소의 수는 일관되어야 합니다. 그렇지 않으면 오류가 보고됩니다.

먼저 여러 배열을 정렬하는 예를 살펴보겠습니다.

  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,$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보다 앞에 옵니다) 등입니다.

정렬 순서를 변경하는 예를 살펴보겠습니다.

  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 )

이 예제에서는 첫 번째 배열을 내림차순으로 정렬하고, 동일한 값이 나타나면 두 번째 배열을 오름차순으로 정렬합니다.

참고: 정렬된 배열이 모두 연관 배열인 경우 원래 키 이름이 유지됩니다. 인덱스 배열이 있으면 인덱스가 순서대로 재설정됩니다.

  1. $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 )

다차원 배열 정렬.

보통 정렬해야 할 다차원 배열이 있습니다:

  1. $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.