Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Fungsi Manipulasi Tatasusunan PHP manakah yang Sesuai Untuk Anda: array_map, array_walk atau array_filter?

Fungsi Manipulasi Tatasusunan PHP manakah yang Sesuai Untuk Anda: array_map, array_walk atau array_filter?

Barbara Streisand
Barbara Streisandasal
2024-10-28 22:55:02213semak imbas

 Which PHP Array Manipulation Function is Right For You: array_map, array_walk, or array_filter?

Membezakan Fungsi Manipulasi Array: array_map, array_walk dan array_filter

Array_map, array_walk dan array_filter ialah tiga fungsi PHP yang biasa digunakan untuk lelaran dan memanipulasi tatasusunan. Walaupun mereka berkongsi fungsi menggunakan fungsi panggil balik pada tatasusunan, mereka berbeza dalam aspek utama tertentu.

Mengubah Suai Nilai Tatasusunan

Array_walk membenarkan untuk mengubah suai nilai input tatasusunan semasa lelaran, manakala array_map tidak. Perbezaan ini adalah penting jika anda berhasrat untuk mengubah suai elemen tatasusunan di tempatnya.

Akses Kunci Tatasusunan

Array_map beroperasi semata-mata pada nilai tatasusunan, mengabaikan kuncinya. Sebaliknya, array_walk menyediakan akses kepada kedua-dua kekunci tatasusunan dan nilai, membenarkan manipulasi berasaskan kunci.

Nilai Pulangan

Array_map mengembalikan tatasusunan baharu yang diubah oleh fungsi panggil balik , manakala array_walk mengembalikan nilai boolean yang menunjukkan kejayaan operasinya. Jika anda memerlukan tatasusunan baharu sebagai hasilnya, array_map ialah pilihan yang sesuai. Jika tidak, array_walk boleh menghasilkan prestasi yang lebih baik.

Lelaran Berbilang Tatasusunan

Array_map boleh mengendalikan berbilang tatasusunan input, pada masa yang sama mengulanginya dan menggunakan fungsi panggil balik secara selari. Array_walk, sebaliknya, beroperasi pada tatasusunan tunggal pada satu masa.

Parameter Panggilan Balik

Array_walk menyokong pemindahan parameter tambahan kepada fungsi panggil balik. Parameter ini boleh berguna untuk menyediakan konteks atau data tambahan kepada logik panggil balik. Walau bagaimanapun, disebabkan pengenalan fungsi tanpa nama dalam PHP 5.3, ciri ini secara amnya kurang relevan.

Saiz Tatasusunan Dikembalikan

Panjang tatasusunan yang dikembalikan dalam array_map sepadan dengan panjang tatasusunan input terpanjang. Array_walk tidak mengembalikan tatasusunan, dan operasinya tidak menjejaskan saiz tatasusunan asal. Array_filter, sebaliknya, mengekalkan subset elemen yang memenuhi syarat panggil balik.

Contoh

Untuk menggambarkan perbezaan ini, pertimbangkan contoh berikut:

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

// array_map: cannot modify values
$result1 = array_map('floor', $origArray1);
print_r($result1); // Does not change $origArray1

// array_walk: can modify values
array_walk($origArray2, function (&$value, $key) { $value = floor($value); });
print_r($origArray2); // Modifies $origArray2

// array_filter: select elements
$result2 = array_filter($origArray1, function($value) { return $value > 2.5; });
print_r($result2); // Only returns elements greater than 2.5</code>

Contoh ini menunjukkan cara setiap fungsi berbeza dan menyerlahkan kesesuaiannya untuk senario tertentu. Memahami perbezaan ini akan membantu anda memilih fungsi yang paling sesuai untuk keperluan manipulasi tatasusunan anda.

Atas ialah kandungan terperinci Fungsi Manipulasi Tatasusunan PHP manakah yang Sesuai Untuk Anda: array_map, array_walk atau array_filter?. 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