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.