PHP 버전
4+
$arr = [2, 3, 1, 5, 4];

// 배열 값의 숫자 오름차순 정렬
// 숫자에서 오름차순은 1 → 2 → 3 → 4 → …… 와 같이 뒤로 갈수록 숫자가 커지는 순으로 정렬
usort($arr, function($a, $b) {
    if ($a > $b) {
        return 1; // $a가 더 크므로(뒤에 와야 하므로) 양수 반환 (뒤섬)
    }

    if ($a < $b) {
        return -1; // $a가 더 작으므로(앞에 와야 하므로) 음수 반환 (앞섬)
    }
    
    if ($a == $b) {
        return 0; // 두 값이 같으므로 순서 변경 없음
    }
});

print_r($arr); // 배열의 값을 기준으로 원본 배열을 정렬
출력
// PHP 8.2.0 전
usort(array &$array, callable $callback): true

// PHP 8.2.0부터
usort(array &$array, callable $callback): bool
callback(mixed $a, mixed $b): int
$data = [
    'c' => 30, // 기존 키: 'c'
    'a' => 10, // 기존 키: 'a'
    'b' => 20, // 기존 키: 'b'
    'd' => 40  // 기존 키: 'd'
];

// 값을 기준으로 오름차순 정렬
// $a와 $b는 배열의 값(value)인 숫자입니다.
usort($data, function($a, $b) {
    if ($a > $b) {
        return 1;
    } elseif ($a < $b) {
        return -1;
    } else {
        return 0;
    }
});

print_r($data);
출력
$products = [
    ['name' => 'Laptop', 'price' => 1200],
    ['name' => 'Smartphone', 'price' => 800],
    ['name' => 'Headphones', 'price' => 150],
    ['name' => 'Monitor', 'price' => 300]
];

// 가격을 기준으로 오름차순(낮은 가격) 정렬
// $a와 $b의 가격을 비교하여 순서를 결정
// $a['price'] = $a 인수 배열 안의 'price' 값
// $b['price'] = $b 인수 배열 안의 'price' 값
usort($products, function($a, $b) {
    if ($a['price'] > $b['price']) {
        return 1;  // $a가 더 크면 뒤로
    } elseif ($a['price'] < $b['price']) {
        return -1; // $a가 더 작으면 앞으로
    } else {
        return 0;  // 같으면 순서 변경 없음
    }
});

print_r($products);
출력