Trong PHP, array_map()
, array_walk()
, và array_filter()
là ba hàm rất hữu ích để làm việc với mảng. Mỗi hàm có cách hoạt động và mục đích riêng biệt. Dưới đây là sự khác biệt giữa chúng:
array_map()
array_map(callable $callback, array $array1[, array $...])
Ví dụ:
$numbers = [1, 2, 3, 4]; $squared = array_map(fn($n) => $n * $n, $numbers); // [1, 4, 9, 16]
array_walk()
array_walk(array &$array, callable $callback[, mixed $userdata])
Ví dụ:
$fruits = ["apple", "banana", "cherry"]; array_walk($fruits, fn(&$item) => $item = strtoupper($item)); // $fruits: ["APPLE", "BANANA", "CHERRY"]
array_filter()
true
từ hàm callback mới được giữ lại trong mảng.array_filter(array $array, callable $callback = null, int $mode = 0)
Ví dụ:
$numbers = [1, 2, 3, 4, 5]; $evenNumbers = array_filter($numbers, fn($n) => $n % 2 === 0); // [2, 4]
array_map()
: Biến đổi các giá trị và trả về mảng mới.array_walk()
: Thực hiện thao tác trên các giá trị mà không trả về mảng mới.array_filter()
: Lọc các phần tử của mảng dựa trên điều kiện và trả về mảng mới chỉ chứa các phần tử thỏa mãn.Sự lựa chọn giữa ba hàm này phụ thuộc vào nhu cầu cụ thể của bạn trong việc xử lý mảng.