Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah `array_map`, `array_walk` dan `array_filter` Berbeza dalam Teknik Manipulasi Tatasusunan mereka?

Bagaimanakah `array_map`, `array_walk` dan `array_filter` Berbeza dalam Teknik Manipulasi Tatasusunan mereka?

Barbara Streisand
Lepaskan: 2024-11-03 04:22:03
asal
997 orang telah melayarinya

 How Do `array_map`, `array_walk`, and `array_filter` Differ in Their Array Manipulation Techniques?

Peranan Berbeza: array_map, array_walk dan array_filter

Manakala array_map, array_walk dan array_filter semuanya melibatkan penghantaran fungsi panggil balik untuk beroperasi pada tatasusunan, ia berbeza dalam fungsi terasnya.

peta_susun cemerlang dalam mengubah elemen tatasusunan. Ia memetakan output panggil balik ke tatasusunan baharu yang sama panjangnya dengan tatasusunan input terbesar. Tidak seperti array_walk, array_map mengekalkan nilai tatasusunan asal tidak berubah.

array_walk pakar dalam mengubah suai elemen tatasusunan di tempat. Ia berulang pada tatasusunan, menggunakan panggilan balik untuk setiap elemen dan membenarkan akses kunci. array_walk mengubah tatasusunan input secara langsung, tiada peta tatasusunan ciri.

penapis_tatasusunan secara terpilih mengekalkan elemen berdasarkan semakan kebenaran panggilan balik. Ia memangkas tatasusunan input, mencipta yang baharu yang mengandungi hanya elemen yang melepasi penapis. array_filter mengekalkan kunci, tidak seperti array_map, tetapi tidak seperti array_walk, ia tidak mengubah suai tatasusunan asal.

Contoh:

<code class="php">$array = [2.4, 2.6, 3.5];

$mapResult = array_map('floor', $array); // Stays the same
print_r($mapResult); // [2, 2, 3]

array_walk($array, function (&amp;$v, $k) { $v = floor($v); }); // Alters the array
print_r($array);  // [2, 2, 3]

$filterResult = array_filter($array, function ($v) { return $v > 2.5; }); // Preserves keys
print_r($filterResult); // [2.6, 3.5]</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah `array_map`, `array_walk` dan `array_filter` Berbeza dalam Teknik Manipulasi Tatasusunan mereka?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan