Fungsi Transformasi Tatasusunan
Gunakan array_map, array_filter dan array_reduce.
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 unsurarray_filter()— kekalkan unsur yang lulus ujianarray_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; // 40Merangkaikan 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.75array_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 preservedarray_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.0Semakan 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 baharuarray_filter()— mengekalkan elemen yang sepadan dengan predikatarray_reduce()— melipat tatasusunan menjadi satu nilai terkumpularray_chunk()— memisahkan tatasusunan kepada subtatasusunanarray_combine()— membina tatasusunan bersekutu daripada kunci + nilaiarray_sum/product()— pengurangan berangka pantas
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
- Tatasusunan Berindeks dan Bersekutu
- Tatasusunan Berbilang Dimensi
- Mengisih dan Mencari Tatasusunan
- Fungsi Transformasi Tatasusunan