PHP array_walk()
Hàm array_walk() trong PHP
Hàm array_walk()
trong PHP là một hàm rất hữu ích để áp dụng một hàm callback cho mỗi phần tử của một mảng. Hàm này cho phép bạn thực hiện các thao tác phức tạp trên các phần tử của mảng mà không cần phải viết vòng lặp thủ công.
Cú pháp
array_walk(array &$array, callable $callback, mixed $userdata = null);
Tham số
- array: Mảng cần thao tác. Tham số này được truyền theo tham chiếu, có nghĩa là bất kỳ thay đổi nào trên mảng bên trong hàm callback sẽ ảnh hưởng đến mảng gốc.
- callback: Hàm callback sẽ được gọi cho mỗi phần tử trong mảng. Hàm này phải có ít nhất một tham số, là giá trị của phần tử hiện tại. Có thể có thêm các tham số khác nếu cần.
- userdata (tùy chọn): Một biến bổ sung có thể được truyền đến hàm callback.
Ví dụ sử dụng
$array = [1, 2, 3, 4]; array_walk($array, function(&$value, $key) { $value = $value * 2; // Nhân đôi giá trị của mỗi phần tử }); print_r($array); // Kết quả: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
Ví dụ với tham số userdata
$array = [1, 2, 3, 4]; $multiplier = 3; array_walk($array, function(&$value, $key, $multiplier) { $value = $value * $multiplier; // Nhân giá trị của mỗi phần tử với biến multiplier }, $multiplier); print_r($array); // Kết quả: Array ( [0] => 3 [1] => 6 [2] => 9 [3] => 12 )
Điểm lưu ý
- Hàm
array_walk()
không trả về giá trị, nó sẽ thay đổi mảng được truyền vào theo tham chiếu. - Bạn có thể sử dụng hàm này khi cần thực hiện các thao tác phức tạp hơn trên từng phần tử của mảng, mà không cần quản lý vòng lặp thủ công.
Kết luận
Hàm array_walk()
rất mạnh mẽ và tiện lợi trong việc thao tác với mảng trong PHP. Nếu bạn cần thay đổi các giá trị trong mảng hoặc thực hiện một số logic tùy chỉnh cho từng phần tử, array_walk()
là một lựa chọn rất tốt.