0Pricing
PHP Academy · Pelajaran

Fungsi Transformasi Array

Menerapkan array_map, array_filter, dan array_reduce.

Fungsi Transformasi Array adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Transformasi Fungsional Larik

PHP menyediakan tiga fungsi tingkat tinggi yang kuat untuk mentransformasi larik tanpa perulangan eksplisit:

  • array_map() — mentransformasi setiap elemen
  • array_filter() — mempertahankan elemen yang lolos pengujian
  • array_reduce() — mereduksi menjadi satu nilai

array_map()

Terapkan fungsi panggilan balik ke setiap elemen dan kembalikan larik baru:

<?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()

Pertahankan elemen yang memenuhi fungsi panggilan balik. Tanpa fungsi panggilan balik, fungsi ini menghapus nilai yang dianggap salah:

<?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()

Reduksi larik menjadi satu nilai dengan menerapkan fungsi panggilan balik secara kumulatif:

<?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

Merangkai Transformasi

Rangkai pemetaan, penyaringan, dan reduksi untuk alur pemrosesan data yang ekspresif:

<?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 dengan Kunci

array_map tidak meneruskan kunci. Gunakan array_walk jika Anda memerlukan kunci dan nilai:

<?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()

Pecah larik menjadi beberapa bagian dengan ukuran tertentu:

<?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()

Buat larik asosiatif dengan menggabungkan larik kunci dan larik nilai:

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

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

Menggabungkan Larik dengan array_map

PHP tidak memiliki fungsi zip bawaan, tetapi array_map(null, ...) membuat struktur yang serupa dengan zip:

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

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

array_map Mempertahankan Kunci

Pada satu larik, array_map mempertahankan kunci. Gunakan fungsi pengindeksan ulang untuk membuat indeks baru:

<?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 dan array_product

Fungsi pembantu reduksi cepat untuk larik numerik:

<?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

Pemeriksaan Singkat

Fungsi mana yang menerapkan fungsi panggil balik ke setiap elemen dan mengembalikan larik baru?

Ringkasan: Fungsi Transformasi Larik

Ringkasan:

  • array_map() — mengubah setiap elemen menjadi larik baru
  • array_filter() — mempertahankan elemen yang cocok dengan predikat
  • array_reduce() — melipat larik menjadi satu nilai akumulasi
  • array_chunk() — memecah menjadi sublarik
  • array_combine() — membuat larik asosiatif dari kunci + nilai
  • array_sum/product() — reduksi numerik cepat

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi Transformasi Array” gratis?

Ya — teks lengkap “Fungsi Transformasi Array” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Fungsi Transformasi Array”?

Menerapkan array_map, array_filter, dan array_reduce. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Fungsi Transformasi Array” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Array Berindeks dan Asosiatif
  2. Array Multidimensi
  3. Mengurutkan dan Mencari Array
  4. Fungsi Transformasi Array
← Kembali ke PHP Academy