Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Barbara Streisandasal
2024-11-03 04:22:03853semak imbas

 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>

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