기술.이산이다
array_multisort
이산이다
2025. 12. 7. 20:31
✅ 1. PHP array_multisort 함수 설명
array_multisort() 은 여러 배열을 동시에 정렬할 수 있는 PHP 내장 함수로,
특히 연관된 다차원 배열을 특정 기준 순서로 정렬할 때 자주 사용됩니다.
📌 주요 특징
- 여러 배열을 같은 인덱스 기준으로 함께 정렬할 수 있다.
- 정렬 옵션 제공:
- SORT_ASC, SORT_DESC (정렬 방향)
- SORT_NUMERIC, SORT_STRING, SORT_REGULAR (정렬 방식)
- 2차원 배열을 특정 컬럼 값 기준으로 정렬하는 데 유용함.
✅ 2. PHP array_multisort 샘플 코드
<?php
$names = ["John", "Alice", "Bob"];
$ages = [25, 30, 20];
// 나이 기준 오름차순 정렬, 이름 배열도 동일한 순서로 재정렬됨
array_multisort($ages, SORT_ASC, $names);
print_r($ages);
print_r($names);
?>
✅ 3. 샘플 코드 이용 방법 및 출력 결과
✔ 실행 방식
$ages 배열을 기준으로 오름차순 정렬하면,
$names 배열도 같은 인덱스 순서를 유지하여 같이 정렬됩니다.
✔ 출력 결과
Array ( [0] => 20 [1] => 25 [2] => 30 ) Array ( [0] => Bob [1] => John [2] => Alice )
✅ 4. VB.NET에서의 유사 기능 — Array.Sort + 키/값 패턴
VB.NET에는 array_multisort 와 동일한 함수는 없지만,
여러 배열을 동시에 정렬하는 방법으로 Array.Sort(keyArray, valueArray) 를 사용합니다.
✔ VB.NET 함수 설명
Array.Sort(keys, items)
→ 첫 번째 배열을 기준으로 정렬하며, 두 번째 배열도 동일한 순서로 정렬됨.
✔ VB.NET 샘플 코드
Dim names() As String = {"John", "Alice", "Bob"}
Dim ages() As Integer = {25, 30, 20}
' ages 기준 정렬, names 배열도 함께 정렬됨
Array.Sort(ages, names)
For i As Integer = 0 To ages.Length - 1
Console.WriteLine(ages(i) & " - " & names(i))
Next
✔ VB.NET 출력 결과
20 - Bob 25 - John 30 - Alice
✅ 5. C#에서의 유사 기능 — Array.Sort
C# 역시 VB.NET과 동일하게 Array.Sort 사용.
✔ C# 함수 설명
Array.Sort(keys, items)
→ key 배열 기준으로 정렬, items 배열도 같은 방식으로 재정렬.
✔ C# 샘플 코드
string[] names = { "John", "Alice", "Bob" };
int[] ages = { 25, 30, 20 };
// 나이 기준 정렬
Array.Sort(ages, names);
for (int i = 0; i < ages.Length; i++)
{
Console.WriteLine($"{ages[i]} - {names[i]}");
}
✔ C# 출력 결과
20 - Bob 25 - John 30 - Alice
✅ 6. Python에서의 유사 기능 — sorted + zip 또는 pandas
파이썬에는 여러 배열을 동시에 정렬하는 내장 함수는 없지만,
zip()과 sorted() 조합으로 쉽게 구현 가능.
✔ Python 함수 설명
sorted(zip(list1, list2))
→ 첫 번째 요소 기준으로 묶어서 정렬.
✔ Python 샘플 코드
names = ["John", "Alice", "Bob"]
ages = [25, 30, 20]
# ages 기준 정렬
sorted_data = sorted(zip(ages, names))
ages_sorted, names_sorted = zip(*sorted_data)
print(list(ages_sorted))
print(list(names_sorted))
✔ Python 출력 결과
[20, 25, 30] ['Bob', 'John', 'Alice']
✅ 7. JavaScript에서의 유사 기능 — objects + sort()
JS에는 다중 배열 정렬 기능은 없으나
객체 배열을 만든 후 Array.sort() 사용.
✔ JavaScript 함수 설명
객체 배열을 특정 key 기준으로 정렬.
✔ JavaScript 샘플 코드
let data = [
{ name: "John", age: 25 },
{ name: "Alice", age: 30 },
{ name: "Bob", age: 20 }
];
// age 기준 정렬
data.sort((a, b) => a.age - b.age);
console.log(data);
✔ JavaScript 출력 결과
[ { name: 'Bob', age: 20 }, { name: 'John', age: 25 }, { name: 'Alice', age: 30 } ]