Conhecendo um pouco das funções de array: filter, map e reduce com PHP

Irei ser bem breve, até porquê não é um assunto que exige algo muito grande, pois, são coisas muito simples e ao mesmo tempo muito úteis.

Acredito que quem já tem um bom conhecimento em javascript conhece bem essas 3 funções, e tem algo que talvez você não saiba: também temos elas no no PHP.

Irei criar um array, para que possamos trabalhar com ele em nossos exemplos com cada uma das funções:

1 — Array Filter

No primeiro exemplo irei utilizar a função array_filter e com ela irei filtrar os produtos com um valor unitário acima de 150:

Neste caso ele irá gerar um novo array de todos os produtos que retorne true nessa condição de valor unitario ser maior que 150.

2 — Array Map

A função array_map serve para remapear e gerar um novo array a partir de um existente, como por exemplo: Você tem um array de produto e quer aplicar um desconto em todos que tem valor acima de 150 reais.

Note que no php a função array_map, diferentemente do array_filter, recebe o callback no primeiro parâmetro, é algo que pessoalmente não gosto muito, mas vamos seguir e entender que nesse caso ele muta o atributo recebido no callback, aplicando o desconto, e retorna para gerar um novo array, e caso não tenha retorno no callback ele adicionará a posição com valor vazio no novo array.

3 — Array Reduce

A função array_reduce basicamente reduz nosso array a único valor, e irei utiliza-lá para retornar nosso valor total de produtos.

O nosso callback volta a seguir o padrão do array_filter, na ordem de parametros passados, e agora recebemos dois parametros no callback onde o primeiro é um valor vazio na primeira vez em que é invocado e o segundo o primeiro produto, e na segunda recebe o retorno da primeira e dai por diante, até que itere por todos os produtos.

Acredito que era isso, a intenção é passar um pouco desses conceitos para quem ta começando no mundo PHP, mas não esqueça de deixar seu comentário caso tenha qualquer dúvida, critíca ou sugestão.

É isso galera e até a próxima onde irei falar um pouco sobre Generators.