Função usort

A função usort ordena um array por valor dos elementos, usando para isso um callback para determinar a ordem dos elementos no array ordenado. A função modifica o próprio array.

A função de comparação deve retornar um número inteiro, que dependendo do resultado da comparação: menor, igual ou maior que zero.

Sintaxe

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

Exemplo

Vamos ordenar o array em ordem crescente dos elementos:

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);
?>

Resultado da execução do código:

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

Exemplo

E agora vamos ordenar o array em ordem decrescente dos elementos:

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);
?>

Resultado da execução do código:

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

Exemplo

E agora vamos ordenar o array por crescente quantidade de caracteres nos elementos do array:

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);
?>

Resultado da execução do código:

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

Veja também

  • a função sort,
    que ordena em ordem crescente dos elementos
  • a função rsort,
    que ordena em ordem decrescente dos elementos
  • a função ksort,
    que ordena em ordem crescente das chaves
  • a função krsort,
    que ordena em ordem decrescente das chaves
  • a função asort,
    que ordena em ordem crescente dos elementos preservando as chaves
  • a função arsort,
    que ordena em ordem decrescente dos elementos preservando as chaves
  • a função natsort,
    que ordena de forma natural
  • a função natcasesort,
    que ordena de forma natural sem diferenciar maiúsculas e minúsculas
  • a função usort,
    que ordena por callback
  • a função uksort,
    que ordena por callback pelas chaves
  • a função uasort,
    que ordena por callback preservando as chaves
  • a função array_multisort,
    que ordena múltiplos arrays