My Profile Photo

Jociel Souza

PHP Clojure Javascript Mongodb ZendFramework


Desenvolvedor Web - Backend - PHP


Estudante de Ciência da Computação, desenvolvedor de software apaixonado por tecnologia.


Estudante de Ciência da Computação procurando sempre aprender algo novo, desenvolvedor web com conhecimento em PHP7^, Zend Framework, Zend Expressive, Doctrine ORM, Doctrine ODM, MongoDB, Javascript, VueJS, HTML, GIT entre outros, atualmente estudando também Clojure, Elm e o paradigma funcional e tentando compartilhar o conhecimento adquirido.


A vida com menos loops em PHP | Jociel Souza

A vida com menos loops em PHP

O array é umas das estruturas de dados mais conhecidas e utilizadas em PHP, um array é na verdade um mapa ordenado, uma estrutura que relaciona valores a chaves, e para manipular/usar os elementos de um array frequentemente utilizamos loops como for, foreach, entre outros, mas existem funções que podemos usar e que deixam nosso código mais legível e facilitam o entendimento, mas que poucas vezes são usados, vamos dar uma olhada em algumas dessas funções.


array_seach
Começando com algo mais simples, array_seach pesquisa por um valor no array passado e retorna a chave desse valor caso exista.

array_diff
Compara o primeiro array passado como parâmetro com os demais e retorna a um array com os valores que existem no primeiro e não existem em nenhum dos demais.

array_count_values
Array_count_values retorna um array com a quantidade que cada valor aparece, com o valor como chave e sua quantidade como valor, vamos ver um exemplo, digamos que queremos ver quantas vezes cada palavra aparece na seguinte frase: “Vou viajar, mas para viajar preciso de passagem, mas para passagem, preciso de dinheiro”.

array_walk
Array_walk aplica uma determinada função callback em cada elemento do array passado, array_walk recebe o array como referência, o primeiro parâmetro da função callback será o valor, o segundo a chave do valor, array_walk aceita um parâmetro opcional que será passado como terceiro parâmetro para a função callback.

array_column
Esta função retorna um array com os valores de uma determinada coluna.
Também podemos definir uma coluna para ser as chaves do array retornado.

array_filter
Aplica uma função callback em todos os elementos de um array, se essa função retornar true o elemento é adicionado no array de retorno, as chaves são preservadas.

array_map
Talvez uma função já conhecida, array_map aplica uma função callback em cada elemento do array retornando um novo array com os elementos depois de aplicada a função. Podemos passar mais de um array, mas o número de parêmtros que a função callback aceita deve ser o mesmo que o de arrays passado para a função array_map.

array_reduce
Outra função que talvez já ouviram falar, array_reduce reduz um array a um único valor aplicando uma função callback a cada elemento do array, o resultado da função aplicada entra como parâmetro para a próxima chamada com o próximo elemento.
Vamos ver um exemplo, queremos calcular a soma de todos os produtos daquela tabela que utilizamos no exemplo de array_column.

Concluindo…
As funções callbacks podem ser passadas diretamente no formato de função anonima. Os códigos acima foram rodados no PHP 7.2.
Dei alguns exemplos simples de uso dessas funções, mas podemos usá-las em diversas situações mais complexas, onde provavelmente usaríamos loops, talvez deixando mais complexas ainda.
Com essas funções, entre outras, podemos evitar de usar loops e deixar nossos códigos menos imperativos, mais simples e fáceis de ler e consequentemente de dar manutenção.

comments powered by Disqus