Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah array_map, array_walk dan array_filter berbeza dalam tingkah laku dan penggunaannya dalam PHP?

Bagaimanakah array_map, array_walk dan array_filter berbeza dalam tingkah laku dan penggunaannya dalam PHP?

DDD
Lepaskan: 2024-11-03 13:06:03
asal
1055 orang telah melayarinya

How do array_map, array_walk, and array_filter differ in their behavior and usage in PHP?

Membezakan array_map, array_walk dan array_filter dalam PHP

Walaupun array_map, array_walk dan array_filter adalah semua fungsi PHP yang mengambil fungsi panggil balik sebagai hujah untuk melakukan tindakan pada tatasusunan, terdapat perbezaan yang ketara dalam tingkah laku dan penggunaannya.

Perbezaan Utama:

1. Pengubahsuaian Nilai:
array_map tidak boleh mengubah suai nilai dalam tatasusunan input, manakala array_walk boleh. Ini kerana array_map mencipta tatasusunan baharu dengan hasil fungsi panggil balik, manakala array_walk mengubah suai tatasusunan input di tempatnya.

2. Akses Kunci Tatasusunan:
peta_susun tidak boleh beroperasi pada kekunci tatasusunan, manakala tatasusunan boleh. Ini bermakna array_walk boleh melakukan operasi berdasarkan kedua-dua nilai dan kekunci tatasusunan.

3. Nilai Pulangan:
array_map mengembalikan tatasusunan baharu yang mengandungi hasil fungsi panggil balik, manakala array_walk mengembalikan benar jika fungsi panggil balik berjaya digunakan pada semua elemen tatasusunan input.

4. Lelaran Berbilang Tatasusunan:
array_map boleh menerima berbilang tatasusunan sebagai input dan mengulanginya secara selari, membenarkan operasi pada berbilang tatasusunan sekaligus. array_walk, sebaliknya, beroperasi pada satu tatasusunan sahaja.

5. Hantaran Argumen Panggilan Balik:
array_walk membenarkan parameter arbitrari tambahan dihantar ke fungsi panggil balik, memberikan fleksibiliti dalam tindakan yang dilakukan dalam panggilan balik.

6. Panjang Tatasusunan Dikembalikan:
array_map menghasilkan tatasusunan hasil dengan panjang yang sama dengan tatasusunan input terbesar. array_walk tidak mengembalikan tatasusunan dan tidak boleh mengubah bilangan elemen dalam tatasusunan input. array_filter mengembalikan subset tatasusunan asal berdasarkan fungsi penapisan dan mengekalkan kekunci asal.

Contoh:

Pertimbangkan kod berikut:

<code class="php">$a1 = array(2.4, 2.6, 3.5);
$a2 = array(2.4, 2.6, 3.5);

array_map('floor', $a1); // $a1 remains unchanged
array_walk($a2, function (&$v) { $v = floor($v); }); // modifies $a2</code>
Salin selepas log masuk

Dalam kes pertama, array_map mencipta tatasusunan baharu dengan nilai lantai setiap elemen dalam $a1, tetapi $a1 itu sendiri kekal tidak diubah suai. Dalam kes kedua, array_walk mengubah suai terus elemen $a2 dengan membulatkannya ke bawah kepada integer terdekat.

Atas ialah kandungan terperinci Bagaimanakah array_map, array_walk dan array_filter berbeza dalam tingkah laku dan penggunaannya dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan