[Mini Curso PHP - Aula 2] - Arrays

: Rafael Marques        11 de Ago de 2018    (0)

Dominar a manipulação de Arrays no PHP é uma das principais habilidades para um programador.


Fala Dev, tudo certo?

A manipulação de Arrays pode ser considerada uma das mais poderosas habilidades dentro da programação, permitindo armazenar em blocos com dados agrupados de diversos tipos como: inteiros, floats, strings, booleanos e até mesmo objetos.

O PHP não se restringe a armazenar e apresentar os dados contidos nos Arrays e provém diversas funções nativas para manipulação e tratamento dos dados permitindo realizar operações incríveis e simplificar vários processos que muitas vezes poderiam demandar por exemplo mais consultas ao banco de dados.

Há diversas formas de se declarar um Array e é o que iremos ver agora:

Criação

<?php
$frutas = array('Banana', 'Laranja', 'Uva', 'Abacaxi');

No exemplo acima, criamos uma variável e atribuímos a função que cria uma Array, em seguida passamos os valores. Como não passamos índices, o PHP automaticamente atribui índices numéricos partindo de 0.

Outra forma de declarar o mesmo Array é atribuindo o índices passando o sinal de atribuição =>

<?php
$frutas = array(0 => 'Banana', 1 => 'Laranja', 2 => 'Uva', 3 => 'Abacaxi');

Ou também:

<?php
$frutas[] = 'Banana';
$frutas[] = 'Laranja';
$frutas[] = 'Uva';
$frutas[] = 'Abacaxi';

Acessando

Para ver os resultados do nosso Array precisamos passar o índice desejado:

<?php
echo $frutas[0]; // Exibe a palavra Banana
echo $frutas[1]; // Exibe a palavra Laranja
echo $frutas[2]; // Exibe a palavra Uva
echo $frutas[3]; // Exibe a palavra Abacaxi

Os índices não precisam necessariamente ser números ou iniciar em 0. São os chamados Arrays Associativos:

<?php
$usuario = array('nome' => 'Rafael', 'idade' => 32, 'salario' => 3.500, 'status' => 0);

No caso acima, criamos diversos índices para o array $usuario e passamos seus respectivos valores associados ao seu próprio índice. Dessa forma para printar os dados, fazemos da seguinte forma:

<?php
echo $usuario['nome']; //Resultado: Rafael
echo $usuario['idade']; //Resultado: 32
echo $usuario['salario']; //Resultado: 3.500
echo $usuario['status']; //Resultado: 0

Matrizes

As matrizes são basicamente um Array contendo Arrays. Uma forma simples de entender o conceito é descrita abaixo:

<?php
$joao = array('nome'=>'João', 'idade'=> 25);
$jose = array('nome'=>'José', 'idade'=> 23);
$maria = array('nome'=>'Maria', 'idade'=> 22);

$clientes = array('joao' => $joao, 'jose' => $jose, 'maria' => $maria);

echo $clientes['joao']['idade']; //Resultado: 25
echo $clientes['maria']['nome']; //Resultado: Maria

Iterando um Array

Iterar um Array significa percorrer ele através de uma função e retornar todos os seus resultados de forma autumatizada.

Para tal, no PHP utilizamos a função nativa FOREACH.

<?php
foreach($clientes as $cliente){
echo "Nome: " . $cliente['nome'] . " | Idade: " . $cliente['idade'] . "<br>";
}

O código acima faz com que ele retorne cada valor do array $clientes e armazene em $cliente a cada volta do loop. Como temos 3 elementos em nosso array $clientes, o foreach percorre as mesmas 3 vezes, dessa forma somente é necessário passar o índice 'nome' e 'idade', uma vez que dentro do FOREACH estamos no nível interno da matriz $clientes.

Funções

Agora vamos dar poder ao nosso sistema/site utilizando as funções exclusivas para Arrays.

 

count

Com o count() podemos contar quando elementos temos dentro de um array.

Exemplo de utilização: Podemos usa-lo para exibir o número de resultados retornados do banco quando fazemos consultas e armazenamos os resultados em arrays.

<?php
echo count($clientes); //Resultado: 3

 

array_merge

Mescla dois ou mais arrays passados como parâmetro. Com isso um novo array é criado na ordem em que passamos os arrays nos parâmetros da função array_merge:

<?php
$clientes = array('João', 'Maria', 'José');
$administradores = array('Lucas', 'Mariana', 'Bruno');

$usuarios = array_merge($clientes, $administradores);

var_dump($usuarios);

 

explode

Uma das funções de Arrays mais utilizadas, o explode serve para transformar uma string em um array baseado em um caracter que será usado como delimitador

<?php
$tags_juntas = "php, html, mysql, javascript, css, sass, wordpress, opencart";
$tags_searadas = explode(", ", $tags_juntas);

var_dump($tags_searadas);

 

implode

Faz o inverso da função explode e tranforma um array em string podendo passar um delimitador

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
$conectar_tags = implode(" | ", $tags);

var_dump($conectar_tags);

 

in_array

Como o próprio nome sugere, o in_array (dentro do array) verifica se uma array possui um valor específico.

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');

if(in_array('php', $tags)){
echo 'Possui a tag php'
}else{
echo 'Não possui a tag php';
}

 

array_pop

Remove o último item de um array. Neste caso não iremos mais ver a última tag (opencart)

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');

array_pop($tags);

var_dump($tags);

 

array_push

Adiciona um item no final do array

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');

array_push($tags, 'Joomla');

var_dump($tags);

 

array_shift

Remove o primeiro item de um array. Neste caso não teremos mais a primeira tag (php)

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');

array_shift($tags);

var_dump($tags);

 

array_unshift

Adiciona um item no início de um array

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');

array_unshift($tags, 'Joomla');

var_dump($tags);

 

array_values

Cria um novo array contendo os valores de outro array

<?php
$usuario = array('nome' => 'Leandro', 'idade' => 20, 'cidade' => 'São Paulo');
$valores = array_values($usuario);

var_dump($usuario); //Retorna: Leandro, 20 e São Paulo

 

array_keys

Quase igual ao array_values porém retorna os índices (chaves) do array

<?php
$usuario = array('nome' => 'Leandro', 'idade' => 20, 'cidade' => 'São Paulo');
$valores = array_keys($usuario);

var_dump($valores); //Retorna: nome, idade e cidade

 

array_reverse

Como o próprio nome sugere, o array_reverse inverte a ordem do array 

<?php
$usuario = array('nome' => 'Leandro', 'idade' => 20, 'cidade' => 'São Paulo');
$valores = array_reverse($usuario);

var_dump($valores); 

 

sort

O sort coloca o array em ordem alfabética mas não mantém os índices. (Mudam os valores de ordem mas as chaves permenecem na ordem anterior)

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
sort($tags);

var_dump($tags);

 

asort

Idêntica a função sort porém mantém os índices ligados às chaves ao reordenar.

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
asort($tags);

var_dump($tags);

 

rsort

Faz o mesmo que a função sort porém em ordem reversa (não mantém índices associados)

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
rsort($tags);

var_dump($tags);

 

ksort e krsort

O ksort ordena um array pelos índices e o krsort faz o mesmo em ordem inversa.

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
ksort($tags);
var_dump($tags);

$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
krsort($tags);
var_dump($tags);

 

array_slice

O array_slice extrai uma fatia de um array. Passamos como parâmetro o array, a primeira chave a ser extraída e tamanho da porção. No exemplo abaixo iremos passar o parâmetro 3 para extrair à partir do valor 'javascript', e passamos em seguida o 2, informando que desejamos extrair dois valores a partir do javascript (índice 3)

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
$extrair = array_slice($tags, 3, 2);

var_dump($extrair);

 

array_pad

O array_pad preenche os valores de um array com um determinado valor pelo número especificado de vezes. 

<?php
$categorias = array('Programação', 'Marketing Digital', 'Design');
$categorias = array_pad($categorias, 8, 'Não preenchido');

var_dump($categorias); // Resultado: Vai completar o array até chegar no índice 8. Após passar os 3 valores do array, ele irá preencher com o valor 'Não preenchido' até completar 8

 

unset

Remove um item específico de um array através do índice

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
unset($tags[0]);

var_dump($tags); //Remove o elemtno 'php'

 

Se eu quiser remover um item de um array através do valor e não do índice?

Neste caso temos que desenvolver uma função própria e podemos utilizar a função array_search que efetua uma busca por um determinado valor dentro de um array. Havendo, nós pegamos seu índice e chamamos a função unset para remove-lo.

<?php

function vunset($value, $array){
if($key = array_search($value, $array)){
if($key !== false){
unset($array[$key]);
return $array;
}else{
return false;
}
}
}

$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'wordpress', 'opencart');
$tags = vunset('html', $tags);

var_dump($tags);

 

array_unique

Exclui do array os resultados repetidos, trazendo apenas valores distintos.

<?php
$tags = array('php', 'html', 'mysql', 'javascript', 'css', 'sass', 'php', 'wordpress', 'opencart', 'css', 'php', 'mysql');
$remove_duplicados = array_unique($tags);

var_dump($remove_duplicados);

 

Essas foram algumas das principais funções que tornam tão poderosa a manipulação de arrays e traz produtividade e clareza ao seu código. Há mais funções e estão todas disponíveis na documentação do PHP.

Caso você não encontre a função que deseja, ela provavelmente será viabilizada somando as funções já existentes (como eu fiz a função vunset para remover um item de um array através do valor).

Se você gostou, compartilhe o artigo, comente logo abaixo para que mais pessoas possam ser ajudadas.

Temos também nossos CURSOS que estão prestes a abrir vagas (ou já abriram dependendo de quando estiver lendo este post).

Um forte abraço e até a próxima ;)

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Entre para a Lista VIP

Acesse conteúdo EXCLUSIVO e NOVIDADES sobre os cursos em primeira mão!

Também Odiamos Spam!

Rafael Marques

Desenvolvedor Web há quase 10 anos e especialista em Opencart E-Commerce CMS. Trabalho com HTML5 / CSS3 / JS / PHP / MySql.

        
Enviando Comentário Fechar :/