기술.이산이다

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 } ]