Trabalhando com arrays no PHP

Aprenda como listar, ordenar e pesquisar arrays com PHP

 

Neste artigo vamos ver como trabalhar com arrays no PHP.

Vamos criar um array com alguns estados do Brasil. Vamos utilizar este array para testar os recursos que vamos aprender neste artigo. Podemos criar um array no PHP da seguinte forma:

 

$array_estados = array("São Paulo", "Rio de Janeiro", "Paraná", "Santa Catarina", "Rio Grande do Sul", "Minas Gerais");

print_r($array_estados);

 

Para saber a quantidade de elementos de um array, podemos utilizar a função count.

 

echo count($array_estados);

 

Um array é uma estrutura onde o primeiro elemento fica na posição zero. Desta forma, se que quiser saber qual é o quarto estado do array, eu faria da seguinte forma:

 

echo $array_estados[3];

 

O retorno seria "Santa Catarina".

 

Uma outra forma de criar arrays seria através de criação de uma array associativo. Arrays associativos são estruturas onde cada elemento é identificado por uma chave única. Nosso array de estados poderia ser criado de forma associativa da seguinte maneira:

 

$array_estados2 = array("SP"=>"São Paulo", "RJ"=>"Rio de Janeiro", "PR"=>"Paraná", "SC"=>"Santa Catarina", "RS"=>"Rio Grande do Sul", "MG"=>"Minas Gerais");

print_r($array_estados2);

 

Perceba que neste exemplo, a chave informada é a sigla do estado, e o valor é o nome do estado.

Para retornar um determinado conteúdo, basta informar a chave desejada.

 

echo $array_estados2["SC"];

 

Para retornar a primeira e última posição de um array, você pode utilizar as funções current e end

 

echo current($array_estados) . "
";

echo end($array_estados) . "
";

 

Para iterar por todos os elementos de um array existem duas formas que são as mais comuns. A forma mais antiga é utilizar o operador for.

 

for ($i = 0; $i < count($array_estados); $i++) {

    echo $array_estados[$i];

echo '
';

}

 

Uma outra forma de iterar por um array é utilizar a função foreach

 

foreach($array_estados as $item) {

    echo $item;

    echo '
';

}

 

Vamos ver a seguir exemplos de outras operações comuns com arrays.

 

Para ordenar uma array, podemos utilizar a função sort.

 

sort($array_estados);

var_dump($array_estados); 

 

Se você necessário ordenar o array de forma reversa, você poderia utilizar a função rsort.

 

rsort($array_estados);

var_dump($array_estados); 

 

E se houver a necessidade de ordenar de forma aleatória os elementos de um array? Você pode fazer isso utilizando a função shuffle

 

shuffle($array_estados);

print_r($array_estados);

 

Para converter valores de um array, podemos utilizar a função array_map. Ela cria uma nova cópia do array com as alterações desejadas. No exemplo a seguir, vamos converter o conteúdo do array em letras maiúsculas.

 

$array_estados_novo = array_map(function ($item) {

    $item = strtoupper($item);

    return $item;

}, $array_estados);

print_r($array_estados_novo);

 

A função array_map recebe dois parâmetros, o primeiro é uma função que deve ser aplicada a todos os elementos do array, e a seguinte é o array que deve ser transformado. Para cada item do array, foi utilizada a funçao strtoupper para converter o conteúdo para letras maiúsculas.

 

Agora vamos ver como reduzir o array a apenas um valor. Para isso vamos criar primeiro uma array numérico.

 

$array_numerico = [1, 2, 3, 4, 5, 5, 6,7, 8, 9, 10];

 

Para fazer isso vamos utilizar a função array_reduce. Ela recebe 3 parâmetros, o primeiro é o array que será processado, o segundo é uma função a ser executada para cada um de seus elementos. De forma opcional, você pode informar um terceiro parâmetro, que seria a posição inicial do array, para o caso de não ser necessário processar o array inteiro. 

 

No exemplo a seguir vamos somar todo o array.

 

$array_numerico = [1, 2, 3, 4, 5, 5, 6,7, 8, 9, 10];

$soma = array_reduce($array_numerico, function ($item, $acumulado) {

    return $acumulado + $item;

}, 0);

echo ($soma);

 

Perceba que na função usada para processar cada registro, temos um parâmetro com o item atual e um parâmetro para armazenar o resultado de cada iteração.

 

Também é possível filtrar dados de uma array. Para isso podemos utilizar a função array_filter. No exemplo a seguir vamos criar um novo array, contendo apenas os estados que começam com a letra "S".

 

$array_estados_s = array_filter($array_estados, function ($item) {

    return substr($item, 0, 1) == "S";

});

print_r($array_estados_s);

 

Esta função recebeu dois parâmetros, o primeiro foi o array que foi processado, e o segundo foi a função que foi executada para cada item do array. Utilizando a função substr, foi possível retornar o primeiro caractere de cada item.

 

Caso você tenha a necessidade de excluir elementos de um array, se você tiver a posição dele, pode utilizar a função array_splice.

 

array_splice($array_estados, 1,1);

print_r($array_estados);

 

 

No exemplo acima a função array_slice recebeu 3 parâmetros, o primeiro foi o array, o segundo foi a posição que desejamos excluir, que foi a segunda, e o terceiro é a quantidade de elementos que queremos excluir a partir desta posição. Como nossa resposta foi 1, ele vai excluir apenas o elemento do indice selecionado.

 

Quer conferir mais dicas sobre PHP? Clique aqui e veja mais dicas!
BINS - Blog PHP

 

Conteúdo sobre banco de dados sem complicação!

MySQL - Referência Rápida

 

SQL Server - Referência Rápida

 

SQL vs Mongo

 

 

 

Veja outros conteúdos que podem ser de seu interesse