usort 함수

함수 usort는 정렬된 배열에서 요소의 순서를 결정하기 위해 콜백을 사용하여 요소 값을 기준으로 배열을 정렬합니다. 함수는 배열 자체를 변경합니다.

비교 함수는 비교 결과에 따라 0보다 작거나, 같거나, 큰 정수를 반환해야 합니다.

구문

phpusort(array &$array, callable $callback): bool

예제

요소를 오름차순으로 배열을 정렬해 봅시다:

php<?php
  $arr = [1, 3, 2, 5, 4];
  
  function func($a, $b)
  {
    if ($a === $b) {
      return 0;
    } else if ($a < $b) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

코드 실행 결과:

php[1, 2, 3, 4, 5]

예제

이번에는 요소를 내림차순으로 배열을 정렬해 봅시다:

php<?php
  $arr = [1, 3, 2, 5, 4];
  
  function func($a, $b)
  {
    if ($a === $b) {
      return 0;
    } else if ($a > $b) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

코드 실행 결과:

php[1, 2, 3, 4, 5]

예제

이번에는 배열 요소의 문자열 길이를 기준으로 오름차순 정렬해 봅시다:

php<?php
  $arr = [
    '123',
    '1',
    '12345',
    '12',
    '1234',
  ];
  
  function func($a, $b)
  {
    if (strlen($a) === strlen($b)) {
      return 0;
    } else if (strlen($a) < strlen($b)) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

코드 실행 결과:

php[
  '1',
  '12',
  '123',
  '1234',
  '12345',
]

함께 보기

  • 함수 sort,
    요소를 오름차순으로 정렬
  • 함수 rsort,
    요소를 내림차순으로 정렬
  • 함수 ksort,
    키를 오름차순으로 정렬
  • 함수 krsort,
    키를 내림차순으로 정렬
  • 함수 asort,
    키를 유지하며 요소를 오름차순으로 정렬
  • 함수 arsort,
    키를 유지하며 요소를 내림차순으로 정렬
  • 함수 natsort,
    자연 순서로 정렬
  • 함수 natcasesort,
    대소문자를 구분하지 않고 자연 순서로 정렬
  • 함수 usort,
    콜백을 사용하여 정렬
  • 함수 uksort,
    콜백을 사용하여 키를 기준으로 정렬
  • 함수 uasort,
    키를 유지하며 콜백을 사용하여 정렬
  • 함수 array_multisort,
    여러 배열을 정렬