PHP Academy · Pelajaran

Fungsi Transformasi Tatasusunan

Gunakan array_map, array_filter dan array_reduce.

Pelajaran 4 daripada 413 langkah

Fungsi Transformasi Tatasusunan ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Transformasi Tatasusunan Fungsian

PHP menyediakan tiga fungsi aras tinggi yang berkuasa untuk mentransformasikan tatasusunan tanpa gelung yang ditulis secara jelas:

  • array_map() — transformasikan setiap unsur
  • array_filter() — kekalkan unsur yang lulus ujian
  • array_reduce() — kurangkan kepada satu nilai

array_map()

Laksanakan fungsi panggil balik pada setiap unsur dan kembalikan tatasusunan baharu:

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

Kekalkan unsur yang memenuhi fungsi panggil balik. Tanpa fungsi panggil balik, fungsi ini mengalih keluar nilai yang dinilai sebagai palsu:

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

Kurangkan tatasusunan kepada satu nilai dengan melaksanakan fungsi panggil balik secara terkumpul:

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

Merangkaikan Transformasi

Rantaikan fungsi pemetaan, penapisan dan pengurangan untuk saluran paip data yang jelas:

<?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 menghantar kunci. Gunakan array_walk apabila anda memerlukan kedua-dua 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()

Pisahkan tatasusunan kepada pecahan dengan saiz yang ditentukan:

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

Cipta tatasusunan bersekutu dengan menggabungkan tatasusunan kunci dengan tatasusunan nilai:

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

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

Pengezipan Tatasusunan dengan array_map

PHP tidak mempunyai fungsi zip terbina dalam, tetapi array_map(null, ...) mencipta struktur yang seakan-akan zip:

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

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

array_map Mengekalkan Kunci

Pada satu tatasusunan, array_map mengekalkan kunci. Gunakan array_values untuk mengindeks semula:

<?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 bantuan pengurangan pantas untuk tatasusunan berangka:

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

Semakan Pantas

Fungsi manakah yang menggunakan fungsi panggil balik pada setiap elemen dan mengembalikan tatasusunan baharu?

Ringkasan: Fungsi Transformasi Tatasusunan

Ringkasan:

  • array_map() — mengubah setiap elemen menjadi tatasusunan baharu
  • array_filter() — mengekalkan elemen yang sepadan dengan predikat
  • array_reduce() — melipat tatasusunan menjadi satu nilai terkumpul
  • array_chunk() — memisahkan tatasusunan kepada sub­tatasusunan
  • array_combine() — membina tatasusunan bersekutu daripada kunci + nilai
  • array_sum/product() — pengurangan berangka pantas
Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Fungsi Transformasi Tatasusunan” percuma?

Ya — teks penuh “Fungsi Transformasi Tatasusunan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Fungsi Transformasi Tatasusunan”?

Gunakan array_map, array_filter dan array_reduce. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Fungsi Transformasi Tatasusunan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Tatasusunan Berindeks dan Bersekutu
  2. Tatasusunan Berbilang Dimensi
  3. Mengisih dan Mencari Tatasusunan
  4. Fungsi Transformasi Tatasusunan
← Kembali ke PHP Academy