Skip to content

PHP

usort

Author
siwon
Date
2023-08-30 20:21
Views
637
PHP의 `usort`는 사용자 정의 비교 함수를 사용하여 배열을 정렬하는 내장 함수입니다. 이 함수를 사용하면 표준 정렬 함수인 `sort()` 또는 `asort()`를 사용하여 어려운 정렬 작업을 할 수 없는 경우에도 배열을 사용자 지정 방식으로 정렬할 수 있습니다.

`usort`의 기본 구문은 다음과 같습니다.

```php
usort(array &$array, callable $comparisonFunction)
```
- `$array`: 정렬하려는 배열입니다. 이 배열은 제자리에서 수정되며 정렬된 새 배열이 반환되지 않습니다.
- `$comparisonFunction`: 사용자 정의 비교 논리를 정의하는 callable 함수입니다. 이 함수는 두 개의 매개변수 (일반적으로 `$a`와 `$b`로 지칭)를 받아들이고 비교 결과를 나타내는 정수를 반환해야 합니다.
  - 만약 `$a`가 `$b`보다 작다고 판단된다면, 함수는 음수 정수를 반환해야 합니다 (예: -1).
  - 만약 `$a`가 `$b`보다 크다고 판단된다면, 함수는 양수 정수를 반환해야 합니다 (예: 1).
  - 만약 `$a`와 `$b`가 같다고 판단된다면, 함수는 0을 반환해야 합니다.
`usort`를 사용하는 예제를 살펴보겠습니다.
```php
// 사용자 정의 비교 함수 정의
function customSort($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
// 정렬할 배열
$numbers = [4, 2, 8, 1, 6];
// 사용자 정의 비교 함수를 사용하여 배열을 정렬합니다.
usort($numbers, 'customSort');
// $numbers 배열은 이제 오름차순으로 정렬됩니다.
print_r($numbers);
```

이 예제에서 `customSort` 함수는 정렬 논리를 정의합니다. 이 함수는 오름차순으로 배열을 정렬합니다. 특정 요구 사항에 따라 사용자 정의 정렬 논리를 구현하려면 이 함수를 수정할 수 있습니다.
`usort`는 배열을 제자리에서 정렬하므로 배열의 원래 순서를 보존해야 하는 경우 주의해서 사용해야 합니다.
Total 0

Total 45
Number Title Author Date Votes Views
40
php formatter
siwon | 2024.11.26 | Votes 0 | Views 279
siwon 2024.11.26 0 279
39
html center 중앙정렬 tailwind
siwon | 2024.07.27 | Votes 0 | Views 657
siwon 2024.07.27 0 657
38
dropdown menu alpinejs 사용 버전
siwon | 2024.04.30 | Votes 0 | Views 735
siwon 2024.04.30 0 735
37
dropdown menu 간단 버전
siwon | 2024.04.30 | Votes 0 | Views 689
siwon 2024.04.30 0 689
36
The Standard PHP Library (SPL) is a collection of classes and interfaces that provide core functionality to PHP developers.
siwon | 2023.10.24 | Votes 0 | Views 1062
siwon 2023.10.24 0 1062
35
session 과 쿠키
siwon | 2023.10.24 | Votes 0 | Views 745
siwon 2023.10.24 0 745
34
Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용
siwon | 2023.10.24 | Votes 0 | Views 716
siwon 2023.10.24 0 716
33
PHP 예외 처리(Exception Handling)
siwon | 2023.10.10 | Votes 0 | Views 890
siwon 2023.10.10 0 890
32
php exception
siwon | 2023.10.10 | Votes 0 | Views 1193
siwon 2023.10.10 0 1193
31
예외(Exception)를 처리하기 위해 try...catch 블록을 사용하는 방법
siwon | 2023.10.10 | Votes 0 | Views 780
siwon 2023.10.10 0 780
30
Preserving Parent Class Functionality in overriding
siwon | 2023.09.26 | Votes 0 | Views 624
siwon 2023.09.26 0 624
29
oop 세부항목
siwon | 2023.09.26 | Votes 0 | Views 622
siwon 2023.09.26 0 622
28
method chaining
siwon | 2023.09.25 | Votes 0 | Views 738
siwon 2023.09.25 0 738
27
interface implements
siwon | 2023.09.19 | Votes 0 | Views 655
siwon 2023.09.19 0 655
Re:interface implements
siwon | 2023.10.24 | Votes 0 | Views 550
siwon 2023.10.24 0 550
26
abstract class : 부모 class로 사용되며 자식(extends 한)에게 abstract method를 강제함(그들만의 방식으로)
siwon | 2023.09.19 | Votes 0 | Views 622
siwon 2023.09.19 0 622
25
isset() / unset()
siwon | 2023.09.18 | Votes 0 | Views 684
siwon 2023.09.18 0 684
24
magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드
siwon | 2023.09.18 | Votes 0 | Views 683
siwon 2023.09.18 0 683
23
MD(markdown) file
siwon | 2023.09.12 | Votes 0 | Views 699
siwon 2023.09.12 0 699
22
usort
siwon | 2023.08.30 | Votes 0 | Views 637
siwon 2023.08.30 0 637
21
closure=unanimous function
siwon | 2023.08.30 | Votes 0 | Views 705
siwon 2023.08.30 0 705
php 7.4에서 추가 화살표 함수 fn()=>
siwon | 2023.10.24 | Votes 0 | Views 1328
siwon 2023.10.24 0 1328
20
reference variable &
siwon | 2023.08.29 | Votes 0 | Views 698
siwon 2023.08.29 0 698
참조(reference)한 original variable의 값을 바꿔버리기 때문에 조심해서 써야함
siwon | 2023.08.30 | Votes 0 | Views 733
siwon 2023.08.30 0 733
19
PHP 변수 : 스칼라(Scalar), 복합(Composite), 그리고 리소스(Resource)
siwon | 2023.08.22 | Votes 0 | Views 775
siwon 2023.08.22 0 775
18
if : vs {}
siwon | 2023.08.22 | Votes 0 | Views 593
siwon 2023.08.22 0 593
17
null coalescing operator
siwon | 2023.08.18 | Votes 0 | Views 794
siwon 2023.08.18 0 794
16
arrary functions
siwon | 2023.08.18 | Votes 0 | Views 646
siwon 2023.08.18 0 646