0Pricing
PHP Academy · Aula

Funções de transformação de matrizes

Aplique array_map, array_filter e array_reduce.

Funções de transformação de matrizes é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

Transformações funcionais de arrays

O PHP oferece três funções poderosas de ordem superior para transformar arrays sem laços explícitos:

  • array_map() — transforma cada elemento
  • array_filter() — mantém os elementos que passam em um teste
  • array_reduce() — reduz a um único valor

array_map()

Aplique uma função de retorno de chamada a cada elemento e retorne um novo array:

<?php
$prices = [10, 20, 30, 40];

$doubled = array_map(fn($p) => $p * 2, $prices);
print_r($doubled); // [20, 40, 60, 80]

// Multiple arrays
$a = [1, 2, 3];
$b = [10, 20, 30];
$sums = array_map(fn($x, $y) => $x + $y, $a, $b);
print_r($sums); // [11, 22, 33]

array_filter()

Mantenha os elementos que satisfazem uma função de retorno de chamada. Sem uma função de retorno de chamada, remove os valores falsos:

<?php
$numbers = [1, 2, 3, 4, 5, 6];

$evens = array_filter($numbers, fn($n) => $n % 2 === 0);
print_r($evens); // [1=>2, 3=>4, 5=>6] — keys preserved!

$reindexed = array_values($evens); // re-index

$mixed = [0, 'hello', '', null, false, 42];
print_r(array_filter($mixed)); // [1=>'hello', 5=>42]

array_reduce()

Reduza um array a um único valor aplicando uma função de retorno de chamada cumulativamente:

<?php
$cart = [
    ['name' => 'Widget', 'price' => 10],
    ['name' => 'Gadget', 'price' => 25],
    ['name' => 'Doohickey', 'price' => 5],
];

$total = array_reduce($cart, fn($carry, $item) => $carry + $item['price'], 0);
echo $total;  // 40

Encadeando transformações

Encadeie as operações de mapeamento, filtragem e redução para criar fluxos de dados expressivos:

<?php
$scores = [45, 80, 30, 90, 55, 70];

$passingAvg = array_sum(
    array_filter($scores, fn($s) => $s >= 50)
) / count(array_filter($scores, fn($s) => $s >= 50));

echo $passingAvg;  // 74.75

array_map com chaves

array_map não passa as chaves. Use array_walk quando precisar da chave e do valor:

<?php
$prices = ['apple' => 1.0, 'banana' => 0.5, 'cherry' => 2.0];

$formatted = [];
array_walk($prices, function($price, $name) use (&$formatted) {
    $formatted[$name] = '$' . number_format($price, 2);
});

print_r($formatted);

array_chunk()

Divida um array em partes de um tamanho determinado:

<?php
$items = range(1, 10);
$batches = array_chunk($items, 3);
print_r($batches);
// [[1,2,3], [4,5,6], [7,8,9], [10]]

array_combine()

Crie um array associativo combinando um array de chaves com um array de valores:

<?php
$keys   = ['name', 'age', 'city'];
$values = ['Alice', 30, 'London'];

$person = array_combine($keys, $values);
print_r($person);
// ['name'=>'Alice','age'=>30,'city'=>'London']

array_zip com array_map

O PHP não tem uma função nativa para combinar arrays por posição, mas array_map(null, ...) cria uma estrutura semelhante:

<?php
$names  = ['Alice', 'Bob'];
$scores = [90, 85];

$zipped = array_map(null, $names, $scores);
print_r($zipped);
// [['Alice', 90], ['Bob', 85]]

array_map preserva as chaves

Com um único array, array_map preserva as chaves. Use array_values para reindexá-lo:

<?php
$assoc = ['a' => 1, 'b' => 2, 'c' => 3];

$result = array_map(fn($v) => $v * 10, $assoc);
print_r($result);
// ['a'=>10, 'b'=>20, 'c'=>30] — keys preserved

array_sum e array_product

Funções auxiliares rápidas de redução para arrays numéricos:

<?php
$nums = [1, 2, 3, 4, 5];

echo array_sum($nums);      // 15
echo array_product($nums);  // 120 (1*2*3*4*5)

// Works with floats too
$prices = [1.5, 2.5, 3.0];
echo array_sum($prices);    // 7.0

Verificação rápida

Qual função aplica uma função de retorno a cada elemento e retorna um novo array?

Resumo: funções de transformação de arrays

Resumo:

  • array_map() — transforma cada elemento em um novo array
  • array_filter() — mantém os elementos que correspondem a um predicado
  • array_reduce() — reduz os elementos a um único valor acumulado
  • array_chunk() — divide o array em subarrays
  • array_combine() — cria um array associativo a partir de chaves + valores
  • array_sum/product() — reduções numéricas rápidas

Perguntas Frequentes

A aula “Funções de transformação de matrizes” é grátis?

Sim — o texto completo de “Funções de transformação de matrizes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Funções de transformação de matrizes”?

Aplique array_map, array_filter e array_reduce. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Funções de transformação de matrizes”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Matrizes indexadas e associativas
  2. Matrizes multidimensionais
  3. Ordenação e busca em matrizes
  4. Funções de transformação de matrizes
← Voltar para PHP Academy