W3docs

PHP Func Array Values: Um Guia Completo

Guia completo sobre a função array_values() do PHP: o que faz, como funciona e exemplos práticos de uso.

A função array_values() retorna todos os valores de um array, reindexados com chaves inteiras consecutivas começando em 0. É uma das funções auxiliares de array mais simples e mais utilizadas no PHP: sempre que um array tiver lacunas nas chaves, ou chaves string que você não precisa mais, array_values() devolve um array limpo no estilo lista. Esta página cobre sua sintaxe, quando utilizá-la, como ela se compara a funções relacionadas e exemplos executáveis.

O que é a função array_values()?

array_values() é uma função PHP nativa que recebe um array e retorna um novo array contendo todos os seus valores. O array original não é alterado. O array retornado sempre utiliza chaves inteiras sequenciais (0, 1, 2, …), e as chaves originais — sejam strings ou inteiros não sequenciais — são descartadas. A ordem relativa dos valores é preservada.

Sintaxe e valor de retorno

array_values(array $array): array
  • $array — o array de entrada cujos valores você deseja extrair.
  • Retorna um array indexado com todos os valores, re-chaveado a partir de 0.

Como funciona o array_values()?

A sintaxe é simples. Aqui está um exemplo básico:

php— editable, runs on the server

A saída deste código seria:

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

Como você pode ver, a função array_values() recebe o array de entrada $input e retorna um novo array $output contendo todos os valores de $input, com novas chaves numéricas começando em zero. As chaves originais do array de entrada são descartadas.

Por que usar array_values()?

A função array_values() pode ser útil em diversas situações. Por exemplo, se você tiver um array associativo com chaves não sequenciais, pode querer usar array_values() para criar um novo array com chaves numéricas sequenciais. Isso pode ser útil se você precisar realizar operações nos valores do array original que exijam chaves sequenciais, como ordenação ou busca.

Outro caso de uso para array_values() é quando você precisa remover as chaves de um array, mas preservar a ordem dos valores. Se você simplesmente usar array_values() no array original, o novo array terá a mesma ordem que o array original, mas com chaves numéricas começando em zero.

Comparando array_values() com Outras Funções PHP

Além de array_values(), existem outras funções PHP que realizam tarefas semelhantes. Aqui está uma breve comparação:

  • array_keys(): Retorna um array com todas as chaves do array de entrada — a imagem espelhada de array_values().
  • array_flip(): Troca todas as chaves pelos seus valores associados.
  • array_combine(): Cria um novo array usando um array para as chaves e outro para os valores.
  • array_column(): Retorna os valores de uma única coluna de um array multidimensional.

Embora essas funções sejam úteis por si mesmas, elas têm casos de uso diferentes. array_keys() e array_flip() trabalham com as chaves de um array, enquanto array_combine() combina dois arrays em um. Para saber mais sobre arrays em geral, consulte o capítulo PHP Arrays.

Boas Práticas ao Usar array_values()

Aqui estão algumas dicas e boas práticas para usar array_values() de forma eficaz:

  • Esteja ciente de que array_values() descarta as chaves originais do array de entrada. Se precisar preservar as chaves, use uma função diferente, como array_keys().
  • Se você tiver um array com chaves não sequenciais, use array_values() para criar um novo array com chaves sequenciais antes de realizar operações que exijam chaves sequenciais.
  • Use array_values() para remover as chaves de um array preservando a ordem dos valores.
  • Ao trabalhar com arrays grandes, esteja ciente de que criar um novo array com array_values() pode consumir uma quantidade significativa de memória. Nesses casos, considere usar métodos alternativos que não exijam a criação de um novo array.
  • Use boas convenções de nomenclatura para suas variáveis, a fim de tornar seu código mais legível e compreensível.

Exemplos Práticos de Uso do array_values()

Agora vamos ver alguns exemplos práticos do uso de array_values() em código PHP.

Exemplo 1: Removendo Chaves Não Numéricas de um Array

Suponha que você tenha um array associativo com chaves não numéricas e queira removê-las para criar um novo array com chaves numéricas sequenciais. Veja como fazer isso usando array_values():

Uso da função array_values do PHP com array associativo

php— editable, runs on the server

A saída deste código seria:

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

Como você pode ver, array_values() criou um novo array com chaves numéricas sequenciais, descartando as chaves não numéricas originais.

Exemplo 2: Reindexando um Array Após Filtragem

Este é o uso mais comum no mundo real de array_values(). Funções como array_filter() preservam as chaves originais, então remover elementos deixa lacunas na numeração. Chamar array_values() em seguida fornece uma lista limpa, sem lacunas:

PHP reindexando um array após array_filter()

php— editable, runs on the server

A saída deste código seria:

Array
(
    [2] => 10
    [3] => 15
    [4] => 20
)
Array
(
    [0] => 10
    [1] => 15
    [2] => 20
)

Observe como array_filter() mantém as chaves originais 2, 3 e 4, enquanto array_values() as redefine para 0, 1 e 2. Isso importa quando você posteriormente codifica o array em JSON (chaves inteiras com lacunas se tornam um objeto JSON em vez de um array) ou depende de acesso posicional.

Conclusão

array_values() retorna um novo array reindexado contendo todos os valores do array de entrada, descartando as chaves originais. Use-a sempre que precisar de um array limpo no estilo lista — mais comumente após operações de filtragem, remoção ou ordenação que deixam chaves não sequenciais. Lembre-se de que ela nunca modifica o array original e que, para arrays muito grandes, a cópia criada tem um custo de memória que vale a pena considerar.

Prática

Prática
Qual é o uso da função array_values() em PHP?
Qual é o uso da função array_values() em PHP?
Was this page helpful?