Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Vetor/array
  2. Declaração de um vetor/array
  3. Acesso/alteração aos elementos
  4. Descobrir o tamanho de um vetor
  5. Percorrendo um vetor
  6. Copiando um vetor
  7. Comparando vetores
  8. Ordenando vetores
  9. Vetor/matriz de funções
  10. Funções nativas
  11. Unpacking com list
  12. Vetor como parâmetro/argumento e retorno
  13. Filtrar elementos

Assim como várias linguagem, PHP possui suporte ao tipo de dado composto/derivado Array que consiste em armazenar informações em memória de forma justaposta e heterogêneas. Um vetor em PHP é baseado em índice-zero.

Tab. 1: Abstração de um vetor de int
0 1 2 3 4 5 (...)
0 10 20 30 40 50 ?

A linguagem PHP possui 2 tipos básicos de array/vetor: Indexado e Associativo. Nesta parte do tutorial vamos estudar as operações básicas sobre array/vetor indexado apenas.

As operações mais complexas que envolvem vetores, devem ser realizadas utilizando as funções nativas em Funções de Array.

Um array em PHP pode ser declarado de diferentes formas sendo as mais básicas exemplificadas nas sintaxes abaixo:

Sintaxe: Iniciado
$variavel = array(); //vazio

$variavel = array(elem1, elem2, elemN); //iniciado com construtor

$variavel = [elem1,elem2,elemN]; //iniciado sem construtor
Exemplo 1
<?php
  $array1 = array();
  $array2 = array(1,2);
  $array3 = [1,"string"]; //utilizando tipos de dados heterogêneos
?>
Saída
-

O acesso aos elementos de vetor é feito utilizando o seus índices que são passados como argumeto para o indexador [], como visto na sintaxe a seguir:

Sintaxe
$variavel_vetor[indice];
Exemplo 2
<?php
  $array = [1,"string",1.99,'X'];
  echo $array[0],$array[1],$array[2];
?>
Saída
1string1.99

A alteração de um elemento contido em um vetor é feita atribuindo-se um novo valor à uma determinada posição:

Sintaxe
$variavel_vetor[indice] = valor;
Exemplo 3
<?php
  $array = [1,"string",1.99,'X'];
  echo $array[0],"\n";  
  $array[0] = 2;
  echo $array[0];
?>
Saída
1
2

Com a função count, podemos descobrir o número de elementos contidos em um vetor. Esse método retorna um inteiro.

Sintaxe
count(array $value, int $mode = COUNT_NORMAL): int
Onde
$value: array/vetor para contagem de elementos
$mode: modo da contagem. COUNT_NORMAL para array, COUNT_RECURSIVE para array multidimensional
Exemplo 4
<?php
  $array = [1,"string",1.99,'X'];
  echo count($array);
?>
Saída
4

Para iterarmos ou percorrermos vetores em PHP, podemos utilizar o comando for que foi estudado em PHP Básico: Comandos de repetição em conjunto como a função count.

Exemplo 5
<?php
  $array = [1,"string",1.99,'X'];
  
  for($i = 0; $i < count($array) ; $i++){
    echo $array[$i];
  }
?>
Saída
1string1.99X

Podemos utilizar também comando foreach para iterarmos sobre uma vetor/array:

Exemplo 6
<?php
  $array = [1,"string",1.99,'X'];
  
  foreach($array as $elemento)
    echo $elemento;
?>
Saída
1string1.99X

Na linguagem PHP, podemos facilmente copiar um vetor utilizando apenas o operador (=), como pode ser visto na sintaxe e exemplo abaixo:

Sintaxe
$vetor_destino = $vetor_origem;
Exemplo 7
<?php
  $array = [1,"string",1.99,'X'];
  $array2 = $array;
  $array[0] = 999;
  
  foreach($array2 as $elemento)
    echo $elemento;
  
  echo "\n";
  
  foreach($array as $elemento)
    echo $elemento;
?>
Saída
1string1.99X
999string1.99X

Existem outras formas para copiar o conteúdo de um array, porém serão vistas em futuras atualizações.

Podemos facilmente concatenar dois ou mais vetores utilizando o operador (...). Assim, um conjunto vetores são concatenados formando um novo vetor.

Sintaxe
$vetor3 = [...$vetor1,...$vetor2];
Exemplo 8
<?php
  $array1 = [1,"string"];
  $array2 = [3,1.99];
  $concat = [...$array1,...$array2];
  
  foreach($concat as $elemento)
    echo $elemento;
?>
Saída
1string31.99

Outra forma de concatenar dois vetores é utilizando a função array_merge que recebe um ou mais vetores como argumento:

Sintaxe
array_merge(array ...$arrays): array
Exemplo 9
<?php
  $array1 = [1,"string"];
  $array2 = [3,1.99];
  $concat = array_merge($array1,$array2);
  
  foreach($concat as $elemento)
    echo $elemento;
?>
Saída
1string31.99

Para comparar dois vetores, utilizamos os operadores relacionais (==),(===),(!=),(<>) e (!==) vistos em PHP Básico: Operadores.

Sintaxe
$vetor1 operador $vetor2
Exemplo 10
<?php
  $array1 = [1,2];
  $array2 = [1,2];
  $array3 = [1,"2"];
  
  echo $array1 == $array2,"\n";
  echo $array1 !== $array3;
?>
Saída
1
1

De forma básica, para ordenarmos vetores em PHP, utilizamos as funções sort e rsort. A primeira ordena os elementos de forma ascendente a a segunda de forma descendente.

Sintaxe
rsort(array &$array, int $flags = SORT_REGULAR): true

sort(array &$array, int $flags = SORT_REGULAR): true
Onde
$flags: flag de comparação
  SORT_REGULAR: normal(padrão)
  SORT_NUMERIC: numérica
  SORT_STRING: strings
  SORT_NATURAL: ordem natural
  SORT_FLAG_CASE: SORT_STRING e SORT_NATURAL
Exemplo 11
<?php
  $array1 = [1,2,3,4];
  $array2 = ["A","C","B","D"];

  rsort($array1);
  
  foreach($array1 as $elemento)
    echo $elemento;
  
  sort($array2);
  
  foreach($array2 as $elemento)
    echo $elemento;
?>
Saída
4321ABCD

Em PHP, podemos declarar um vetor ou matriz de funções. Para isso, basta iniciarmos um vetor com as funções desejada como sendo elementos desse vetor como mostrado na sintaxe a seguir:

Sintaxe
$vetor1 = [funcao1, funcao2, funcaoN];

Para invocarmos uma função contida de um vetor, utilizamos o indexador [] e o índice da função desejada. O operador () é utilizado para a passagem de argumentos.

Sintaxe
$vetor[indice](<argumentos>);
Exemplo 12
<?php
    function funcao1(){ echo "funcao1\n"; }
    function funcao2($p){ echo "funcao2:",$p; }

    $farray = [funcao1,funcao2];
    $farray[0]();
    $farray[1](100);
?>
Saída
funcao1
funcao2:100

A linguagem PHP fornece as funções nativas abaixo para manipulação do tipo de dado Array. Clique sobre o nome da função desejada para ser direcionado.

  1. array_change_key_case
  2. array_chunk — Divide um array em partes
  3. array_column — Retorna os valores de uma coluna
  4. array_combine — Cria um array usando array for chaves e outro de valores
  5. array_count_values
  6. array_diff_assoc - Retorna a diferença(Conjunto) de elementos entre arrays
  7. array_diff_key
  8. array_diff_uassoc — Retorna a diferença(Conjunto) de elementos entre arrays baseado em função do usuário
  9. array_diff_ukey
  10. array_diff
  11. array_fill_keys
  12. array_fill — Preenche array com valores definidos
  13. array_filter — Filtra elementos de um array baseado em uma função
  14. array_flip
  15. array_intersect_assoc
  16. array_intersect_key
  17. array_intersect_uassoc
  18. array_intersect_ukey
  19. array_intersect
  20. array_is_list
  21. array_key_exists — Verificar se uma chave existe em um array
  22. array_key_first
  23. array_key_last
  24. array_keys — Retorna um array contendo todos as chaves de um array
  25. array_map
  26. array_merge_recursive
  27. array_merge — Concatena um ou mais arrays
  28. array_multisort
  29. array_pad
  30. array_pop — Remove um elemento do fim do array
  31. array_product
  32. array_push — Adiciona um ou mais valores no fim do array
  33. array_rand
  34. array_reduce
  35. array_replace_recursive
  36. array_replace
  37. array_reverse — Retorna um array com elementos em ordem reversa
  38. array_search — Busca de um valor e retorna a sua chave
  39. array_shift — Remove um elemento do início
  40. array_slice — Extrai elementos de um array
  41. array_splice
  42. array_sum — Retorna a somo dos elementos do array
  43. array_udiff_assoc
  44. array_udiff_uassoc
  45. array_udiff
  46. array_uintersect_assoc
  47. array_uintersect_uassoc
  48. array_uintersect
  49. array_unique — Remove elementos repetidos
  50. array_unshift — Adiciona um ou mais elementos do início de um array
  51. array_values
  52. array_walk_recursive
  53. array_walk — Executa uma função para todos os elementos do array
  54. array — Cria um array
  55. arsort
  56. asort
  57. compact
  58. count — Retorna númer de elementos do array
  59. current — Retorna elementos na posição atual do array
  60. each — Depreciado
  61. end — Avança o ponteiro interno para o último elemento
  62. extract
  63. in_array
  64. key_exists
  65. key
  66. krsort — Ordena em ordem descendente
  67. ksort — Ordena em ordem ascendente
  68. list — Atribuie elementos de um array à variáveis
  69. natcasesort
  70. natsort
  71. next — Avança o ponteiro interno do array
  72. pos — O mesmo que current
  73. prev — Retrocede o ponteiro interno para o primeiro elemento
  74. range
  75. reset — Posiciona o ponteiro interno no primeiro elemento do array
  76. rsort — Ordena um array de forma descendente
  77. shuffle — Embaralha elementos do array
  78. sizeof — o mesmo que count
  79. sort — Ordena os elementos do array em ordem ascendente
  80. uasort
  81. uksort
  82. usort
  1. 21/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes e targets de links; Adição: funções nativas
  2. 22/09/2024 - revisão 2 - correção em sintaxes 'Acessando/alterando', ajustes gramaticais pontuais; outros ajustes
  3. 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  4. 20/09/2023 - versão inicial