티스토리 뷰
728x90
array_multisort()는 여러 배열을 한 번에 정렬하거나, 다차원 배열을 정렬할 수 있는 함수이다.
연관(문자열) 키는 유지되지만 숫자 키는 새로 인덱스 된다.
📘 사용구문
array_multisort(array $array1,
mixed $array1_sort_order=SORT_ASC,
mixed $array1_sort_flags=SORT_REGULAR,
mixed .... $rest
);
/**
* $array1 : 정렬할 배열
* $array1_sort_order :
* 이전 배열 인수($array1)를 정렬하는 데 사용되는 순서 SORT_ASC(오름차순), SORT_DESC(내림차순)
* 이 인수는 $array1_sort_flags로 바꾸거나, 완전히 생략 할수 있으며, 기본값 SORT_ASC
* $array1_sort_flags :
* 이전 배열 인수($array1)에 대한 정렬 옵션
* 이 인수는 $array1_sort_order로 바꾸거나, 완전히 생략 할수 있으며, 기본값 SORT_REGULAR
* $rest : 정렬할 추가 배열, 정렬순서 및 플래그 선택적 설정
*/
💡 정렬순서(sort order)
정렬순서(sort order) | 설 명 |
SORT_ASC | a-z, 1-9 순의 오름차순 정렬 |
SORT_DESC | z-a, 9-1 순의 내림차순 정렬 |
💡 정렬유형(sort type)
정렬유형(sort type) | 설 명 |
SORT_REGULAR | 일반적인 정렬(sort와 동일한 기능) |
SORT_NUMERIC | 숫자 비교 정렬 |
SORT_STRING | 문자열 비교 정렬 |
SORT_LOCALE_STRING | 현재 로케일에 기반 문자열로 원소 정렬 |
SORT_NATURAL | natsort() 처럼 자연순 정렬 |
SORT_FLAG_CASE | 문자열을 대소문자를 구분하지 않고 정렬(SORT_STRING, SORT_NATURAL 와 결합) |
📌 사용예제
// 여러 배열 정렬
$array1 = [10, 100, 100, 0];
$array2 = [1, 3, 2, 4];
array_multisort($array1, $array2);
var_dump($array1);
/*
array(4)
{
[0]=> int(0)
[1]=> int(10)
[2]=> int(100)
[3]=> int(100)
}
*/
var_dump($array2);
/*
array(4)
{
[0]=> int(4)
[1]=> int(1)
[2]=> int(2)
[3]=> int(3)
}
*/
// 다차원 배열 정렬
$array = [
["10", 11, 100, 100, "a"],
[1, 2, "2", 3, 1]
];
array_multisort($array[0], SORT_ASC, SORT_STRING, $array[1], SORT_NUMERIC, SORT_DESC);
var_dump($array);
/*
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)
}
}
*/
// 대소문자를 구분하지 않는 정렬
$array = ['Alpha', 'atomic', 'Beta', 'bank'];
$array_lowercase = array_map('strtolower', $array); // 배열의 각 원소에 소문자로 변환하는 함수적용
array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);
print_r($array);
/*
Array
(
[0] => Alpha
[1] => atomic
[2] => bank
[3] => Beta
)
*/
728x90
'프로그램개발' 카테고리의 다른 글
[ PHP ] 이미지에 워터마크 넣기 (0) | 2024.07.19 |
---|---|
[ Jquery ] 제이쿼리 선택자(Selector) (0) | 2024.07.17 |
[ PHP ] 다차원 배열의 특정 키에 해당하는 값만 추출(array_column) (0) | 2024.07.04 |
[ Javascript ] Event 객체 (0) | 2024.07.02 |
[Kotlin] 다이얼로그(Dialog) (0) | 2024.06.28 |