Objetivos
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
-
Acessando/alterando elementos
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.
- array_change_key_case
- array_chunk — Divide um array em partes
- array_column — Retorna os valores de uma coluna
- array_combine — Cria um array usando array for chaves e outro de valores
- array_count_values
- array_diff_assoc - Retorna a diferença(Conjunto) de elementos entre arrays
- array_diff_key
- array_diff_uassoc — Retorna a diferença(Conjunto) de elementos entre arrays baseado em função do usuário
- array_diff_ukey
- array_diff
- array_fill_keys
- array_fill — Preenche array com valores definidos
- array_filter — Filtra elementos de um array baseado em uma função
- array_flip
- array_intersect_assoc
- array_intersect_key
- array_intersect_uassoc
- array_intersect_ukey
- array_intersect
- array_is_list
- array_key_exists — Verificar se uma chave existe em um array
- array_key_first
- array_key_last
- array_keys — Retorna um array contendo todos as chaves de um array
- array_map
- array_merge_recursive
- array_merge — Concatena um ou mais arrays
- array_multisort
- array_pad
- array_pop — Remove um elemento do fim do array
- array_product
- array_push — Adiciona um ou mais valores no fim do array
- array_rand
- array_reduce
- array_replace_recursive
- array_replace
- array_reverse — Retorna um array com elementos em ordem reversa
- array_search — Busca de um valor e retorna a sua chave
- array_shift — Remove um elemento do início
- array_slice — Extrai elementos de um array
- array_splice
- array_sum — Retorna a somo dos elementos do array
- array_udiff_assoc
- array_udiff_uassoc
- array_udiff
- array_uintersect_assoc
- array_uintersect_uassoc
- array_uintersect
- array_unique — Remove elementos repetidos
- array_unshift — Adiciona um ou mais elementos do início de um array
- array_values
- array_walk_recursive
- array_walk — Executa uma função para todos os elementos do array
- array — Cria um array
- arsort
- asort
- compact
- count — Retorna númer de elementos do array
- current — Retorna elementos na posição atual do array
- each — Depreciado
- end — Avança o ponteiro interno para o último elemento
- extract
- in_array
- key_exists
- key
- krsort — Ordena em ordem descendente
- ksort — Ordena em ordem ascendente
- list — Atribuie elementos de um array à variáveis
- natcasesort
- natsort
- next — Avança o ponteiro interno do array
- pos — O mesmo que current
- prev — Retrocede o ponteiro interno para o primeiro elemento
- range
- reset — Posiciona o ponteiro interno no primeiro elemento do array
- rsort — Ordena um array de forma descendente
- shuffle — Embaralha elementos do array
- sizeof — o mesmo que count
- sort — Ordena os elementos do array em ordem ascendente
- uasort
- uksort
- usort
Histórico de atualizações
- 21/08/2025 - revisão 3 - Ajustes: pontuais, sintaxes e targets de links; Adição: funções nativas
- 22/09/2024 - revisão 2 - correção em sintaxes 'Acessando/alterando', ajustes gramaticais pontuais; outros ajustes
- 05/02/2024 - revisão 1 - correção em navegação e erros gramaticais
- 20/09/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.