W3docs

Entendendo a Função array_reverse() do PHP

Em PHP, a função array_reverse() inverte a ordem dos elementos de um array. Saiba sobre sintaxe, chaves e o parâmetro $preserve_keys.

A função array_reverse() do PHP retorna um novo array com os elementos do array fornecido em ordem inversa. É uma função nativa (sem necessidade de extensão) e funciona tanto com arrays indexados quanto com arrays associativos. É a ferramenta ideal quando você precisa de uma visão "do último ao primeiro" dos dados — por exemplo, exibir os comentários mais recentes primeiro, percorrer uma lista de trás para frente ou desfazer uma ordenação.

Esta página aborda a sintaxe, como as chaves são tratadas, o sinalizador $preserve_keys e os erros mais comuns.

Sintaxe

array_reverse(array $array, bool $preserve_keys = false): array
ParâmetroObrigatórioDescrição
$arraySimO array a ser invertido.
$preserve_keysNãoSe true, as chaves numéricas são mantidas associadas aos seus valores em vez de serem renumeradas. As chaves string são sempre preservadas, independentemente deste sinalizador. O padrão é false.

A função retorna um novo array; o original nunca é modificado.

Como a Função array_reverse() do PHP Funciona?

array_reverse() percorre o array de entrada do último elemento ao primeiro e constrói um novo array nessa ordem. Por padrão, as chaves inteiras são renumeradas a partir de 0, enquanto as chaves string são mantidas como estão. Defina $preserve_keys como true quando precisar que as chaves numéricas originais permaneçam associadas aos seus valores.

Aqui está o caso mais simples — inverter um array indexado:

Exemplo PHP de uso da função array_reverse

php— editable, runs on the server

Saída:

Array
(
    [0] => cherry
    [1] => banana
    [2] => apple
)

Como podemos ver, a ordem dos elementos no $reversed_array é o inverso da ordem dos elementos no $original_array.

Usando a Função array_reverse() do PHP com Arrays Associativos

Como mencionado anteriormente, a função array_reverse() também pode ser usada com arrays associativos. Quando utilizada com arrays associativos, a ordem dos elementos é invertida, mas as chaves string permanecem inalteradas por padrão.

Aqui está um exemplo de como a função array_reverse() pode ser usada com um array associativo:

Exemplo PHP de como a função array_reverse() pode ser usada com um array associativo

php— editable, runs on the server

Saída:

Array
(
    [c] => cherry
    [b] => banana
    [a] => apple
)

Como podemos ver, as chaves dos elementos no $reversed_array ainda correspondem às chaves originais, mas a ordem dos elementos está invertida. As chaves string são sempre preservadas, portanto o sinalizador $preserve_keys não faz diferença aqui.

Preservando Chaves Numéricas

Para arrays indexados (chaves numéricas), array_reverse() renumera as chaves a partir de 0 por padrão. Geralmente é isso que você quer, mas às vezes o índice original tem significado — um número de linha, uma posição, um ID. Passe true como segundo argumento para manter essas chaves associadas aos seus valores:

Exemplo PHP de preservação de chaves numéricas com array_reverse()

<?php

$data = array(10 => "ten", 20 => "twenty", 30 => "thirty");

// Default: numeric keys are renumbered from 0
print_r(array_reverse($data));

// preserve_keys = true: original numeric keys are kept
print_r(array_reverse($data, true));

?>

Saída:

Array
(
    [0] => thirty
    [1] => twenty
    [2] => ten
)
Array
(
    [30] => thirty
    [20] => twenty
    [10] => ten
)

No primeiro array, os valores são invertidos mas as chaves são redefinidas; no segundo, as chaves 30, 20 e 10 acompanham seus valores.

Erros Comuns

  • Não modifica o array original. array_reverse($arr) retorna um novo array — não inverte $arr no lugar. Sempre capture o valor de retorno: $arr = array_reverse($arr);.
  • Não é uma ordenação. Inverter apenas vira a ordem atual. Para obter ordem decrescente, ordene primeiro (por exemplo, com rsort() ou arsort()) em vez de inverter.
  • Chaves string ignoram $preserve_keys. O sinalizador afeta apenas chaves inteiras; as chaves string são mantidas de qualquer forma.
  • Invertendo uma string. array_reverse() funciona apenas com arrays. Para inverter uma string, use strrev().

Funções Relacionadas

Conclusão

Em conclusão, a função array_reverse() é uma função poderosa e versátil que permite inverter facilmente a ordem dos elementos em um array. Seja trabalhando com arrays indexados ou associativos, a função array_reverse() pode ajudá-lo a manipular seus arrays da forma que você precisa. Com sua sintaxe simples e comportamento direto, a função array_reverse() é uma ferramenta essencial para qualquer programador PHP que trabalha com arrays.

Prática

Prática
Qual das alternativas a seguir é verdadeira sobre a função array_reverse() em PHP?
Qual das alternativas a seguir é verdadeira sobre a função array_reverse() em PHP?
Was this page helpful?