Skip to content

Latest commit

 

History

History
422 lines (330 loc) · 10.2 KB

15.2-array_funcoes.md

File metadata and controls

422 lines (330 loc) · 10.2 KB

Funções para manipular arrays

O PHP oferece de forma nativa mais de 81 funções para manipular arrays. Essas funções permitem diversas operações. Vamos ver ao longo deste capítulo alguns exemplos. Para conhecer todas as funções de manipulação de array disponíveis no PHP, consulte o manual do PHP.

Contando os elementos de um array

Algumas vezes é necessário contar os elementos de um array, para isso podemos utilizar a função a função count(), ela retorna o número de posições do array.

<?php
$frutas = ['banana','maçã', 'laranja'];

echo count($frutas);

Desta forma, teremos como retorno o valor 3. Ou seja, há um total de 3 elementos dentro do array $frutas.

Adicionando ou removendo um valor no array

Algumas funções podem ser utilizadas para acrescentar ou remover valores dentro de um array. Vejamos alguns exemplos:

Adicionar um elemento no array

Com a função array_push() é possível adicionar um elemento no array. O novo elemento é adicionado na última posição do array.

<?php
$frutas = ['banana','maçã', 'laranja'];
array_push($frutas, "limão", "uva");
print_r($frutas);

O código acima terá como saída:

Array
(
    [0] => banana
    [1] => maçã
    [2] => laranja
    [3] => limão
    [4] => uva
)

Repare que os novos elementos foram acrescentados no final do array.

Adicionar um elemento no início do array

A função array_unshift() adiciona os elementos passados como argumentos no início de array.Veja o exemplo:

<?php
$cesta = ['laranja', 'banana'];
array_unshift($cesta, 'melancia', 'morango');
print_r($cesta);

O trecho de código acima terá como saída:

Array
(
    [0] => melancia
    [1] => morango
    [2] => laranja
    [3] => banana
)

Remover o primeiro elemento de um array

A função array_shift() retira o primeiro elemento de array. Todas as chaves numéricas são alteradas para começar a contar a de 0 (zero), enquanto chaves string permanecerão inalteradas. Veja o exemplo:

<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$fruta = array_shift($cesta);
print_r($cesta);

O exemplo acima irá imprimir:

Array
(
    [0] => banana
    [1] => melancia
    [2] => morango
)

E laranja seria passado para $fruta.

Remover o último elemento do array

A função array_pop() extrai e retorna o último elemento de array, diminuindo array em um elemento. Veja o exemplo:

<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$fruta = array_pop($cesta);
print_r($cesta);

Este exemplo irá imprimir:

Array
(
    [0] => laranja
    [1] => banana
    [2] => melancia
)

E morango será passado para $fruta.

Ordenação de arrays

Os elementos contidos em um array podem ser ordenados, em ordem alfabética ou numérica e de forma crescente, ou decrescente. Para isso, utilizamos as funções envolvendo sort.

Ordenando os elementos de forma crescente

Podemos utilizar tanto para organizar de forma crescente alfabética, como numérica a função sort().

Veja no exemplo abaixo um array com valores em strings. Vamos então ordenar de forma crescente.

<?php

$frutas = ['limão', 'laranja', 'banana', 'maçã'];

sort($frutas);

//imprimir o array 

foreach ($frutas as $chave => $valor) {
    echo "frutas[" . $chave . "] = " . $valor . PHP_EOL;
}

O exemplo acima irá imprimir.

frutas[0] = banana
frutas[1] = laranja
frutas[2] = limão
frutas[3] = maçã

Ordenando os elementos de forma decrescente

Ao contrário da função sort(), podemos organizar nosso array em ordem decrescente. Para isso basta utilizar a função rsort(). Vamos usar o mesmo exemplo anterior só que dessa vez, usaremos a função rsort().

<?php

$frutas = ['limão', 'laranja', 'banana', 'maçã'];

rsort($frutas);

//imprimir o array 

foreach ($frutas as $chave => $valor) {
    echo "frutas[" . $chave . "] = " . $valor . PHP_EOL;
}

O exemplo acima irá imprimir.

frutas[0] = maçã
frutas[1] = limão
frutas[2] = laranja
frutas[3] = banana

Ordenando uma array com chaves personalizadas através do valor de forma crescente

Usamos a função asort() para ordenar o array em ordem crescente, de acordo com o valor. Veja o exemplo:

<?php
$frutas = ['d' => 'limao', 'a' => 'laranja', 'b' => 'banana', 'c' => 'melancia'];

asort($frutas);

foreach( $frutas as $chave => $valor ){
    echo "$chave =  $valor" . PHP_EOL;
}

O exemplo acima irá imprimir:

b = banana
a = laranja
d = limao
c = melancia

Repare que as frutas foram ordenadas na ordem alfabética, e os índices associados a cada valor foram mantidos.

Ordenando um array com chaves personalizadas através do valor de forma decrescente

A função arsort() ordena um array de forma que a correlação entre índices e valores é mantida. É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator importante. Veja o exemplo:

<?php
$frutas = ['d' => 'limao', 'a' => 'laranja', 'b' => 'banana', 'c' => 'melancia'];

arsort($frutas);

foreach( $frutas as $chave => $valor ){
    echo "$chave =  $valor" . PHP_EOL;
}

O exemplo acima irá imprimir:

c =  melancia
d =  limao
a =  laranja
b =  banana

Ordenando um array com chaves personalizadas através da Chave de forma crescente

A função ksort() ordena um array pelas chaves, mantendo a correlação entre as chaves e os valores. Essa função é bastante útil principalmente para arrays associativos. Veja o exemplo:

<?php
$frutas = ['d' => 'limao', 'a' => 'laranja', 'b' => 'banana', 'c' => 'melancia'];

ksort($frutas);

foreach( $frutas as $chave => $valor ){
    echo "$chave =  $valor" . PHP_EOL;
}

O exemplo acima irá imprimir:

a =  laranja
b =  banana
c =  melancia
d =  limao

Ordenando um array com chaves personalizadas através da Chave de forma decrescente

A função krsort() ordena um array pelas chaves em ordem descrescente, mantendo a correlação entre entre as chaves e os valores. Essa função é bastante útil em arrays associativos. Veja o exemplo:

<?php
$frutas = ['d' => 'limao', 'a' => 'laranja', 'b' => 'banana', 'c' => 'melancia'];

krsort($frutas);

foreach( $frutas as $chave => $valor ){
    echo "$chave =  $valor" . PHP_EOL;
}

O exemplo acima irá imprimir:

d =  limao
c =  melancia
b =  banana
a =  laranja

Removendo elementos do array

Às vezes, é comum que array possua valores repetidos, principalmente se ela for muito grande. Você pode filtrar os elementos que se repetem utilizando a função array_unique(). Dessa forma, teremos como resultado uma nova array onde todos os elementos repetidos serão removidos, permanecendo na ordem apenas o que apareceu na primeira chave de mesmo valores. Veja o exemplo:

<?php
$input = array("a" => "verde", "vermelho", "b" => "verde", "azul", "vermelho");
$result = array_unique($input);
print_r($result);

O exemplo acima irá imprimir:

Array
(
    [a] => verde
    [0] => vermelho
    [1] => azul
)

Diferença entre arrays

Para comparar a diferença entre arrays você pode utilizar a função array_dif(). Veja o exemplo:

<?php
$array1 = ["a" => "verde", "vermelho", "azul", "vermelho"];
$array2 = ["b" => "verde", "amarelo", "vermelho"];
$result = array_diff($array1, $array2);

print_r($result);

Isto irá mostrar:

Array
(
[1] => azul
)

Retornar as chaves de um array

A função array_keys() retorna todas as chaves de um array desde que sejam dos tipos: numérica ou string.

Veja os exemplos:

<?php
$array = [0 => 100, "cor" => "vermelho"];
print_r(array_keys($array));

$array = ["azul", "vermelho", "verde", "azul", "azul"];
print_r(array_keys($array, "azul"));

$array = ["1", 1, 1, 1, "1"];
print_r(array_keys($array, "1","==="));

O exemplo acima irá imprimir:

Array
(
    [0] => 0
    [1] => cor
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => 0
    [1] => 4
)

Verificar a existência de uma chave no array

Podemos utilizar a função array_key_exists() para verificar a existência de uma chave no array.

Ela possui dois parâmetros:

  1. key: Valor para verificar.

  2. array: Um array com chaves para verificar.

Exemplo:

<?php
$busca_array = [
    "primeiro" => 1, 
    "segundo" => 4];

if (array_key_exists("primeiro", $busca_array)) {
    echo "O elemento 'primeiro' está no array!";
}

OBS: A função isset() também pode ser utilizada para verificar a existência de uma chave porém, não retorna TRUE para valores de chave que correspondam a um valor NULL, enquanto que array_key_exists() retorna.

Verificar se um elemento existe no array

Para checar se um valor existe em um array, podemos utilizar a função in_array(). Ela retorna TRUE em caso positivo e FALSE em caso negativo.

Exemplo:

<?php
$os = array("Mac", "NT", "Irix", "Linux"); 
if (in_array("Irix", $os)) { 
    echo "Tem Irix";
}
if (in_array("mac", $os)) { 
    echo "Tem mac";
}

A segunda condicional falha pois in_array() diferencia letras minúsculas e maiúsculas. Então, a saída seria:

Tem Irix

Agora com checagem de tipos

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' encontrado com checagem de tipo\n";
}
if (in_array(1.13, $a, true)) {
    echo "1.13 encontrado com checagem de tipo\n";
}

O exemplo acima irá imprimir:

1.13 encontrado com checagem de tipo

Inverter os elementos do array

A função array_reverse() retorna um array com os elementos na ordem inversa. Veja o exemplo:

<?php
$cesta = ["laranja", "banana", "melancia", "morango"];
$inverso = array_reverse($cesta);
print_r($inverso);

Este exemplo irá imprimir:

Array
(
    [0] => morango
    [1] => melancia
    [2] => banana
    [3] => laranja
)

Somando os elementos do array

A função array_sum() calcula a soma dos elementos de um array. Veja o exemplo:

<?php
$a = [1,2,3,4,5,6,7,8,9];
$soma = array_sum($a);
echo $soma;

O resultado que o programa imprime é o valor 45.

Voltar a página inicial