Trabalhando e manipulando Arrays no PHP

Yure Pereira
Weyes
Published in
11 min readFeb 13, 2017

Quando estamos desenvolvendo aplicações para internet ou para quaisquer outras plataformas é de extrema importância para nós desenvolvedores sabemos trabalhar e manipular Arrays de dados, pois com sua utilização simplificamos muito do nosso trabalha com a manipulação de estruturas maiores e mais complexas de dados, onde o trabalha com variáveis primitivas seria algo totalmente inviável de ser realizado.

Sendo assim, já imaginou a situação hipotética na qual precisarmos lidar com a manipulação de mil registros de clientes cadastrados em nosso banco de dados, onde ainda para cada registro tivesse os seguintes dados do cliente: nome, e-mail, telefone e endereço e tivéssemos que criar variáveis para armazenar todos esses dados, seria algo totalmente inviável, pois além de temos que criar uma grande quantidade de variáveis, ficaria muito desorganizado todos esses dados de forma a ficar de difícil manipulação.

Então nessa situação poderíamos criar um Array multidimensional para resolver nosso problema, onde teríamos somente um ponto de acesso para nossos dados, que seria o Array criado, e dentro desse Array teríamos outros Arrays que seriam cada registro de cliente que foi obtido de nosso banco de dados.

Agora que temos uma noção do porquê devemos usar Arrays precisamos saber o que é um Array, um Array no PHP nada mais é do que uma estrutura de dados onde ela nos permite gravar e acessar dados de forma heterogênea ou homogênea, ou seja, podemos criar um Array onde podemos gravar dados com mais de um tipo, por exemplo, inserir valores dos tipos Integer, String, Object etc. em um mesmo Array ou também podemos gravar somente um tipo de dado de forma homogênea.

Criando nosso primeiro Array

No PHP para que possamos criar um Array, ele nos fornece a função construtora array onde inicialmente podermos criar um Array vazio simplesmente chamando essa função sem passar nenhum parâmetro, assim ela nós retornará um novo Array vazio, como no exemplo abaixo:

Agora se quiséssemos criar um Array já definindo seus elementos iniciais, nós podermos defini-los passando-os como parâmetros da função array, onde para cada elemento teremos que separa-los com virgula e para cada elemente precisaremos definir sua chave e valor separados pelo operador =>, porém também podermos omitir a chave do elemento, assim ela será gerada automaticamente em formato numérico sequencialmente. Vejamos um exemplo a seguir:

Além da função construtora array, a partir da versão 5.4 do PHP nós podermos criar Arrays usando a sintaxe contraída, que usa colchetes para que possamos criar Arrays, como podemos ver no próximo exemplo:

Outra forma de definir os elementos de nosso Array além da forma onde definimos eles no momento da criação de nosso Array, e defini-los dinamicamente conforme se for necessário no decorrer de nosso código utilizando colchetes, definindo ou não a chave do elemento e atribuindo um valor a ele, de forma como podermos ver no exemplo abaixo.

Tipos de Array no PHP

No PHP nós podemos trabalhar com três tipos básicos de Arrays, que são os seguintes: Array numéricos, Array associativos e Array Multidimensionais.

Array numéricos

Se defini um Array como sendo numérico quando seu índice é representada de forma numérica, essa numeração e sequencia e é gerada automaticamente conforme se vai inserindo novos itens ao Array, seu índico sempre inicia a partir do número zero e esse Array pode conter quaisquer tipo de dados como tipos primitivo ou de objetos. Agora a seguir veremos um exemplo de sua utilização:

No exemplo acima podemos ver como é fácil criar um Array numérico, e como podemos adicionar quaisquer tipos de dados dentro de um mesmo Array. Agora na imagem a seguir podemos ver o resultado gerado na execução desse script anterior, onde poderemos observar nas partes destacadas em amarelo os índices numéricos gerados automaticamente.

Agora que já sabemos como criar um Array numérico vamos ver a seguir como podemos acessar os dados dentro dele utilizando os caracteres de colchetes de forma muito simples:

Como podemos ver no exemplo acima acessar o conteúdo dentro de um Array numerado é algo bem simples de se fazer.

Array associativos

Diferentemente dos Arrays numéricos os Array associativos são Arrays onde nós podemos definir qual será sua chave de índice, isso utilizando uma String ou um valor inteiro, mas também podemos passar valores do tipo Float como chave, porém eles serão arredondados para números inteiros.

E caso for passado dados do tipo Object ou até mesmo do tipo Array como chave de nosso índice um erro será retornando não permitindo que o mesmo adicione o novo elemento. Agora veremos um exemplo prático de sua utilização:

No exemplo acima podemos ver como é simples criar Arrays associativos tanto quanto Arrays numéricos, nele também podemos ver a criação de um índice utilizando uma chave numérica do tipo Float, assim de tal forma poderemos ver na imagem a seguir o resultado da execução do script e como essa chave de número Float será arredondado e convertida para um número inteiro:

Agora que já vimos como criar um Array associativo veremos no exemplo abaixo como podemos acessar seus elementos por suas chaves de forma semelhante aos Array numérico, porém agora teremos que usar a chave de índice a qual definimos quando declaramos o Array.

Algo que é bom destacar sobre Arrays associativos é que eles também geram chave de índice numérica automaticamente, mas isso quando nós não definimos a chave do elemento a qual adicionamos ao Array, porém o índice é gerado tal forma que se inicie a partir do maior número inteiro contido dentro do Array, como veremos no exemplo a seguir:

Após a execução do script acima teremos como resultado a imagem abaixo, onde podemos observar como foi gerado os índices dos elementos os quais não definimos nossos próprios índices.

Como podemos ver na imagem acima os índices foram gerados de forma sequencia, e também podemos ver que depois que foi adicionado o índice de número cinquenta manualmente, o índice gerado automaticamente do elemento que foi adicionado posteriormente, partiu a partir dele, assim sendo gerado o índice de número cinquenta e um.

Array multidimensionais

Por último, porém não menos importante que os outros, nós temos o Array multidimensional, onde basicamente ele é um Array onde podemos adicionar outros Arrays dentro dele de tal forma à ficar com varias dimensões, assim podermos perceber o porquê de seu nome.

Em um Array multidimensional nós podermos adicionar tanto Arrays numéricos quanto Arrays associativos, onde para cada sub Array contido dentro do Array principal que é o primeiro também sendo a primeira dimensão, nós podemos adicionar outros Arrays dentro deles, e assim suscetivamente. Vejamos um exemplo a seguir:

Agora que já criamos nosso Array multidimensional, vamos ver como podermos acessar cada sub elemento contido dentro dele utilizando múltiplos índices:

Como podemos ver no exemplo acima, acessar os sub’s elementos de um Array é tão simples quanto acessar Arrays normais de uma dimensão, só temos que tomar cuidado para não errar os nomes de suas sub’s chaves de índices.

Verificando a quantidade de elementos existentes dentro de um Array

Para que possamos saber a quantidade de elementos contidos dentro de um Array podemos utilizar a função count do PHP, onde para isso passamos o Array a qual nós queremos saber a quantidade como primeiro parâmetro de sua chamada de execução, como veremos no exemplo a seguir:

Com a execução do script anterior iremos obter a quantidade de elementos contidos em nosso Array, porém caso nosso Array seja multidimensional nós não iremos obter a quantidade de elementos de todos as dimensões do mesmo, assim somente de sua primeira dimensão, então para que nós possamos obter a quantidade de elementos de todos as dimensões de nosso Array teremos que passar um segundo parâmetro para a função count, da forma como veremos a seguir:

Outra função que nós podemos encontrar para obter a quantidade de elementos dentro de um Array é a função sizeof, que na verdade ela simplesmente é um apelido à função count, ou seja, ela tem a mesma funcionalidade da função count, porém sua chamada é realizada com outro nome.

Fazendo iterações sobre Arrays

Fazer iterações sobre Arrays é algo que no nosso cotidiano temos que fazer com bastante frequência, para mostrar os dados para nossos usuários, então agora veremos como podemos fazer isso com as estruturas de repetição do PHP.

Utilizando a estrutura de repetição FOR para fazer iterações em Arrays

Veremos agora como podemos fazer iterações em Arrays com a estrutura de repetição FOR:

Como podemos ver no exemplo acima, percorrer um Array com o laço de repetição FOR é algo bem simples de se fazer, onde também podemos observar nesse exemplo uma utilidade da função count, a qual estamos pegando o tamanho de nosso Array com ela para que possamos fazer nosso laço de repetição somente percorrer a extensão exata de nosso Array.

Utilizando a estrutura de repetição FOREACH para fazer iterações em Arrays

Além da estrutura de repetição FOR o PHP nos fornece a estrutura FOREACH, que foi especialmente criada para iterar Arrays e Objects, então quando pretendemos iterar Arrays no PHP é mais indicado que usamos essa estrutura ao invés da estrutura FOR, pois ela é bem mais simples de se trabalhar e de se dar manutenção.

Essa estrutura nos fornece duas sintaxes para que possamos iterar Arrays de dados, a primeira é mais simples e nos possibilita acessar o valor de cada elemento do Array por iteração, como podermos ver a seguir:

Já na segunda sintaxe do FOREACH nós podemos obter a chave do índice e o valor do elemento a cada iteração do laço de repetição, como podemos ver no exemplo a seguir:

Como pudesse ver nos exemplos anteriores a estrutura de repetição FOREACH é bem mais simples e entendível de se trabalhar em comparação a estrutura FOR, além do mais, não precisamos criar nenhuma variável ou usar alguma função para que possamos percorre todo nosso Array, então sempre é mais indicado sua utilização ao invés da estrutura FOR.

Fazendo operações em Arrays

Algo não muito usado mais de grande ajuda são os operadores de Arrays os quais o PHP nos fornece, com eles podemos fazer união de Arrays tanto como fazer comparações entre eles de forma simples. Podemos ver esses operadores na imagem a seguir:

Operadores de Arrays no PHP

Vejamos no exemplo a seguir como podemos fazer a união de dois Arrays utilizando o operador de união (+) de Arrays do PHP:

Como podemos ver no exemplo acima, fazer a união de dois Arrays se torna algo bem simples utilização o operador de união, porém essa união não se limita a somente dois Arrays, nós podemos fazer a união de quantos Arrays for necessário adicionando eles sequencialmente em nossa expressão de união.

Contudo, ao utilizamos o operador de união devemos levar em consideração o seguinte ponto, sempre que fazemos a união de dois Arrays e existir elementos com as mesmas chaves nos dois Arrays, os elementos com as chaves iguais do Array da esquerda serão mantidos enquanto os elementos com chaves repedidas do Array da direita serão ignorados.

Assim como aconteceu no exemplo anterior, onde nos dois Arrays existiam elementos com a chave b, podemos ver na imagem a seguir como o elemento com essa chave do Array do direita foi ignorado.

Resultado da união de dois Arrays

Além do operador de união o PHP também nos fornece a função array_merge para que possamos fazer a combinação de dois ou mais Arrays de dados, porém a finalidade dessa função é praticamente o mesmo do operador de união, contudo o funcionalmente dela é diferente, então ao usá-la levem isso em consideração.

Nesse momento já sabemos como fazer a união de dois Arrays ou mais, agora veremos como podemos fazer a comparação condicionais entre Arrays, que é muito útil quando precisamos saber por exemplo se um Array é igual a outro ou maior e outras comparações.

Vejamos como podemos fazer as comparações com os operadores de igualdade e identidade no exemplo a seguir:

No exemplo anterior a primeira expressão de comparação que está usando o operador de igualdade irá nos retornar true, pois os dois Arrays checados contêm os mesmos elementos, contudo no segundo exemplo onde se está usando o operador de identidade será retornado false, isso porque o operador de igualdade tanto checa se os Arrays contêm os mesmos elementos como também se as chaves dos elementos então na mesma ordem dentro dos Arrays.

Agora para finalizar vamos ver como podemos verificar se dois Arrays são desiguais ou não são idênticos com os operadores de desigualdade e não identidade:

Nas primeiras duas expressões utilizando os operadores de desigualdade os resultados retornados serão os mesmos, pois esses dois operadores têm as mesmas finalidade, onde eles retornaram true, devido aos dois Arrays serem diferentes. Na terceira e última expressão utilizando o operador de identidade também será retornado true, pois eles além de terem quantidade de elementos diferentes, ainda seus elementos então em ordem diferentes, de tal forma a retornar true.

Conclusão

No decorrer do artigo podemos ver como é importante saber trabalhar com Arrays no PHP, vimos como é simples criar Arrays utilizando a função construtora array ou utilizando a sintaxe contraída usando colchetes.

Depois vimos os tipos de Arrays que podemos criar no PHP, onde eles são Arrays numéricos, associativos e multidimensional e suas diferenças, também vimos como podemos saber a quantidade de elementos contidos dentro de um Array de uma dimensão ou mais usando a função count.

Assim também vimos como podemos fazer iterações sobre Arrays utilizando as estruturas de repetição FOR e FOREACH com suas suas sintaxes, onde a primeira somente pegamos o valor de cadas elemento do Array, e já na segunda sintaxe podemos pegar tanto a valor quanto a chave do índice do elemento percorrido do Array, vimos também como é bem mais simples utilizar a estrutura FOREACH ao invés da estrutura FOR, onde o código fica bem claro e fácil de entender e dar manutenção.

Para finalizar vimos como fazer a utilização dos operadores de Arrays do PHP, onde eles não são muito usados, porém são de grande ajuda em determinadas tarefas as quais podemos vir a ter que realizar no nosso cotidiano.

Além de tudo que foi apresentado nesse artigo, há muitos assuntos importantes que podemos estudar sobre Arrays no PHP, como sua gama enorme de funções que são disponibilizadas para nossa utilização. Caso queiram saber mais sobre Arrays no PHP, acessem sua documentação oficial, que muito mais sobre Arrays poderão ser encontrado por lá: Documentação PHP Arrays.

Se gostou do artigo dê like ❤️e me siga, para acompanhar novos artigos. Mas se gostou muito, compartilha que ficarei muito grato. E sinta-se à vontade para fazer comentários, sobre dúvidas, críticas construtivas (ou não), melhorias e agradecimentos.

--

--