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 elemenarray_filter()— mempertahankan elemen yang lolos pengujianarray_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; // 40Merangkai 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.75array_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 preservedarray_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.0Pemeriksaan 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 baruarray_filter()— mempertahankan elemen yang cocok dengan predikatarray_reduce()— melipat larik menjadi satu nilai akumulasiarray_chunk()— memecah menjadi sublarikarray_combine()— membuat larik asosiatif dari kunci + nilaiarray_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
- Array Berindeks dan Asosiatif
- Array Multidimensi
- Mengurutkan dan Mencari Array
- Fungsi Transformasi Array