Terdapat banyak fungsi terbina dalam dalam PHP, antaranya fungsi array_map() adalah salah satu fungsi yang sangat berguna. Fungsi ini boleh menerima satu atau lebih tatasusunan sebagai input dan mengembalikan tatasusunan baharu Setiap elemen tatasusunan baharu ialah hasil tatasusunan input yang diproses oleh fungsi panggil balik. Fungsi array_map() digunakan terutamanya untuk memudahkan operasi, seperti mengendalikan setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Sintaks fungsi
array_map() adalah seperti berikut:
array_map(callable $callback, array ...$arrays): array
Antaranya, $callback ialah fungsi panggil balik dan $arrays ialah satu atau lebih tatasusunan. Fungsi ini berulang melalui semua tatasusunan dalam $arrays, memanggil fungsi panggil balik pada setiap elemen tatasusunan secara bergilir, dan akhirnya mengembalikan tatasusunan yang mengandungi semua elemen baharu.
Fungsi panggil balik ialah fungsi yang beroperasi pada elemen input. Bilangan parameter yang diterima oleh fungsi panggil balik mestilah sama dengan bilangan elemen tatasusunan input, dan parameter pertama sentiasa elemen tatasusunan input. Fungsi panggil balik boleh mempunyai berbilang tatasusunan input, tetapi setiap tatasusunan input mesti mempunyai bilangan elemen yang sama.
Berikut ialah contoh mudah menggunakan fungsi array_map() untuk menggandakan elemen dalam tatasusunan:
function double($n) { return $n * 2; } $numbers = array(1, 2, 3, 4, 5); $doubled = array_map('double', $numbers); print_r($doubled);
Output:
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Dalam contoh ini, kita mula-mula mentakrifkan fungsi panggil balik double() yang akan mendarabkan nilai input Ambil 2 dan kembalikan hasilnya. Kemudian kami mentakrifkan tatasusunan $numbers, yang mengandungi integer dari 1 hingga 5. Seterusnya, kami memanggil array_map() dengan fungsi double() sebagai fungsi panggil balik dan tatasusunan $numbers sebagai input. Akhir sekali, kami menyimpan output dalam tatasusunan $doubled dan mencetaknya pada skrin.
Kami juga boleh menggunakan berbilang tatasusunan input dalam fungsi panggil balik. Sebagai contoh, array_map() boleh digunakan untuk menjumlahkan elemen dalam dua tatasusunan:
function sum($a, $b) { return $a + $b; } $numbers1 = array(1, 2, 3, 4, 5); $numbers2 = array(10, 20, 30, 40, 50); $summed = array_map('sum', $numbers1, $numbers2); print_r($summed);
Output:
Array ( [0] => 11 [1] => 22 [2] => 33 [3] => 44 [4] => 55 )
Dalam contoh ini, kami mentakrifkan fungsi panggil balik sum() baharu yang menerima dua parameter input dan Tambahnya. Kami mencipta dua tatasusunan $numbers1 dan $numbers2 dan menyerahkannya kepada fungsi array_map() dengan fungsi sum() sebagai panggilan balik. Fungsi ini mengembalikan tatasusunan baharu $summed yang mengandungi hasil penambahan elemen dalam tatasusunan $numbers1 dan $numbers2.
array_map() juga mempunyai ciri yang digunakan secara meluas: menggunakan fungsi tanpa nama sebagai fungsi panggil balik. Fungsi tanpa nama ialah ciri baharu yang diperkenalkan dalam PHP 5.3 yang membolehkan kami mencipta fungsi secara dinamik apabila perlu. Berikut ialah contoh menggunakan fungsi tanpa nama untuk mengira panjang semua rentetan dalam tatasusunan rentetan:
$strings = array('hello', 'world', 'goodbye'); $lengths = array_map(function($str) { return strlen($str); }, $strings); print_r($lengths);
Output:
Array ( [0] => 5 [1] => 5 [2] => 7 )
Dalam contoh ini, kami mentakrifkan fungsi tanpa nama yang menerima rentetan sebagai input dan mengembalikan Panjang rentetan ini. Kami menghantar fungsi tanpa nama ini sebagai fungsi panggil balik kepada fungsi array_map(), menggunakan tatasusunan $strings sebagai input. Akhir sekali, tatasusunan baru $lengths adalah output, yang mengandungi panjang semua rentetan dalam tatasusunan $strings.
Ringkasnya, fungsi array_map() ialah alat yang sangat berguna yang boleh menjadikan operasi tatasusunan lebih jelas dan ringkas. Fungsi panggil balik juga sangat disesuaikan dan boleh beroperasi dengan mudah pada pelbagai jenis data. Harap artikel ini dapat membantu anda lebih memahami dan menggunakan fungsi array_map().
Atas ialah kandungan terperinci PHP array_map() penggunaan fungsi dan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!