찾다
백엔드 개발PHP 튜토리얼PHP array_multisort() 함수 사용 시 주의 사항

함수 bool array_multisort (array &$arr [, Mixed $arg = SORT_ASC [, Mixed $arg = SORT_REGULAR [, Mixed $...]]] )
매개변수 설명: 이 함수는 여러 배열 또는 다차원 배열을 정렬합니다. Sort
첫 번째 매개변수는 배열이고 각 후속 매개변수는 배열이거나 다음 정렬 순서 플래그일 수 있습니다.
SORT_ASC - 기본값, 오름차순으로 정렬
SORT_DESC - 내림차순으로 정렬
다음을 수행할 수 있습니다. 그런 다음 정렬 유형
SORT_REGULAR(기본값)을 지정합니다. 각 항목을 규칙적인 순서로 배열하세요.
SORT_NUMERIC - 각 항목을 숫자순으로 정렬합니다.
SORT_STRING - 각 항목을 알파벳순으로 정렬합니다.
예제 코드

$arr1 = array('10', 11, 100, 100, 'a'); 
$arr2 = array(1, 2, 3, '2', 5); 
array_multisort($arr1, $arr2);

결과는 다음과 같습니다.
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [ 3 ] => 100 [4] => 100 )
# '10'은 11, 100, 100과 비교하면 정수 10으로 변환되는데, 이는 다른 세 숫자보다 작습니다.
# '10 '가 'a'에 있음 문자열로 비교하면 첫 번째 문자 '1'의 ASCII 코드 값은 49로 'a'(ASCII 값은 97)보다 작으므로 '10'이 가장 작은 요소입니다. ># 'a'는 다른 세 숫자의 비교에 속함 이면 다른 세 숫자보다 작은 정수 0으로 변환됩니다.
$arr2
Array ( [0] => 1 [ 1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2 요소 1은 $arr1 요소 '10' 위치에 해당합니다. [0] 위치
# $arr1[2] => 100, $arr1[ 3] => 100은 각각 $arr2 요소 3과 '2'에 해당합니다. 3은 '2'보다 크므로 2에 해당하는 $arr1[2] => 100의 정렬된 첨자는
3이고, 3에 해당하는 $arr1[3] => 100의 정렬된 첨자는 4입니다.
요약
1. 정렬에 참여하는 배열 요소의 개수는 동일합니다.
2. 정렬된 배열 요소의 위치는 예를 들어 '10' => 1 , 11 => 2 3. 다음 배열 이전 배열의 순서에 따라 정렬
4. 이전 배열에서 동일한 요소가 발견되면 다음 배열을 비교합니다.

array_multisort — 여러 배열 또는 다차원 배열 정렬

설명
bool array_multisort ( array $ar1 [, Mixed $arg [, Mixed $... [, array $... ]]] )
성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환합니다. .

array_multisort()는 여러 배열을 한 번에 정렬하거나 하나 이상의 차원에 따라 다차원 배열을 정렬하는 데 사용할 수 있습니다.

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

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

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

정렬 순서 플래그:

SORT_ASC - 오름차순 정렬
SORT_DESC - 내림차순 정렬

정렬 유형 플래그:

SORT_REGULAR - 정렬 내림차순으로 항목은 일반적인 방법에 따라 비교됩니다.
SORT_NUMERIC - 항목은 숫자 값에 따라 비교됩니다. ​​
SORT_STRING - 항목은 문자열에 따라 비교됩니다.

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

#1 여러 배열 정렬

이 예에서 정렬하면 첫 번째 배열에는 "10", "a", 100, 100이 포함됩니다. 두 번째 배열에는 1,1,"2",3이 포함됩니다. 두 번째 배열의 항목 순서는 첫 번째 배열의 해당 항목(100 및 100) 순서와 정확히 동일합니다.
<?php 
$ar1 = array("10", 100, 100, "a"); 
$ar2 = array(1, 3, "2", 1); 
array_multisort($ar1, $ar2); 
var_dump($ar1); 
var_dump($ar2); 
?>

#2 다차원 배열 정렬
array(4) { 
[0]=> string(2) "10" 
[1]=> string(1) "a" 
[2]=> int(100) 
[3]=> int(100) 
} 
array(4) { 
[0]=> int(1) 
[1]=> int(1) 
[2]=> string(1) "2" 
[3]=> int(3) 
}

이 예에서 정렬한 후 첫 번째 배열에는 10, 100, 100, "a"(문자열로 정렬됨)가 포함됩니다. 오름차순) 두 번째 배열에는 1, 3, "2", 1(숫자 내림차순으로 정렬)이 포함됩니다.
<?php 
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 
array_multisort ($ar[0], SORT_ASC, SORT_STRING, 
$ar[1], SORT_NUMERIC, SORT_DESC); 
?>

#3 다차원 배열 정렬

이 예에서 정렬 후 첫 번째 배열은 "10", 100, 100, 11, "a"(로 처리됨)가 됩니다. 문자열 오름차순). 두 번째 배열에는 1, 3, "2", 2, 1(내림차순 숫자로 처리됨)이 포함됩니다.
<?php 
$ar = array( 
array("10", 11, 100, 100, "a"), 
array( 1, 2, "2", 3, 1) 
); 
array_multisort($ar[0], SORT_ASC, SORT_STRING, 
$ar[1], SORT_NUMERIC, SORT_DESC); 
var_dump($ar); 
?>
array(2) { 
[0]=> array(5) { 
[0]=> string(2) "10" 
[1]=> int(100) 
[2]=> int(100) 
[3]=> int(11) 
[4]=> string(1) "a" 
} 
[1]=> array(5) { 
[0]=> int(1) 
[1]=> int(3) 
[2]=> string(1) "2" 
[3]=> int(2) 
[4]=> int(1) 
} 
}

#4 对数据库结果进行排序 
本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。 

例子中的数据如下: 

volume | edition 
-------+-------- 
67 | 2 
86 | 1 
85 | 6 
98 | 2 
86 | 6 
67 | 7 

数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。 

$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 升序排列。 

现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。 

// 取得列的列表 
foreach ($data as $key => $row) { 
$volume[$key] = $row['volume']; 
$edition[$key] = $row['edition']; 


// 将数据根据 volume 降序排列,根据 edition 升序排列 
// 把 $data 作为最后一个参数,以通用键排序 
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); 
?> 
数据集合现在排好序了,结果如下: 

volume | edition 
-------+-------- 
98 | 2 
86 | 1 
86 | 6 
85 | 6 
67 | 2 
67 | 7 


Example #5 不区分大小写字母排序 

SORT_STRING 和 SORT_REGULAR 都是区分大小写字母的,大写字母会排在小写字母之前。 

要进行不区分大小写的排序,就要按照原数组的小写字母拷贝来排序。 

<?php 
$array = array(&#39;Alpha&#39;, &#39;atomic&#39;, &#39;Beta&#39;, &#39;bank&#39;); 
$array_lowercase = array_map(&#39;strtolower&#39;, $array); 

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array); 

print_r($array); 
?>

以上例程会输出: 

Array 

[0] => Alpha 
[1] => atomic 
[2] => bank 
[3] => Beta 


【译者注】本函数相当有用,为有助于理解,请再看下面这个例子: 


Example #6 名次排列 

<?php 
$grade = array("score" => array(70, 95, 70.0, 60, "70"), 
"name" => array("Zhang San", "Li Si", "Wang Wu", 
"Zhao Liu", "Liu Qi")); 
array_multisort($grade["score"], SORT_NUMERIC, SORT_DESC, 
// 将分数作为数值,由高到低排序 
$grade["name"], SORT_STRING, SORT_ASC); 
// 将名字作为字符串,由小到大排序 
var_dump($grade); 
?>

以上例程会输出: 

array(2) { 
["score"]=> 
array(5) { 
[0]=> 
int(95) 
[1]=> 
string(2) "70" 
[2]=> 
float(70) 
[3]=> 
int(70) 
[4]=> 
int(60) 

["name"]=> 
array(5) { 
[0]=> 
string(5) "Li Si" 
[1]=> 
string(6) "Liu Qi" 
[2]=> 
string(7) "Wang Wu" 
[3]=> 
string(9) "Zhang San" 
[4]=> 
string(8) "Zhao Liu" 


本例中对包含成绩的数组 $grade 按照分数(score)由高到低进行排序,分数相同的人则按照名字(name)由小到大排序。排序后李四 95 分为第一名,赵六 60 分为第五名没有异议。张三、王五和刘七都是 70 分,他们的名次则由其姓名的字母顺序排列,Liu 在前,Wang 在后而 Zhang 在最后。为了区别,三个 70 分分别用了整数,浮点数和字符串来表示,可以在程序输出中清楚地看到它们排序的结果。

更多PHP array_multisort()函数的使用札记相关文章请关注PHP中文网!

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

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.

PHP 및 Python : 유사점과 차이점을 탐구합니다PHP 및 Python : 유사점과 차이점을 탐구합니다Apr 19, 2025 am 12:21 AM

PHP와 Python은 웹 개발, 데이터 처리 및 자동화 작업에 널리 사용되는 고급 프로그래밍 언어입니다. 1.PHP는 종종 동적 웹 사이트 및 컨텐츠 관리 시스템을 구축하는 데 사용되며 Python은 종종 웹 프레임 워크 및 데이터 과학을 구축하는 데 사용됩니다. 2.PHP는 Echo를 사용하여 콘텐츠를 출력하고 Python은 인쇄를 사용합니다. 3. 객체 지향 프로그래밍을 지원하지만 구문과 키워드는 다릅니다. 4. PHP는 약한 유형 변환을 지원하는 반면, 파이썬은 더 엄격합니다. 5. PHP 성능 최적화에는 Opcache 및 비동기 프로그래밍 사용이 포함되며 Python은 Cprofile 및 비동기 프로그래밍을 사용합니다.

PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.