Hai thằng array_walk và array_map khá là giống nhau.
1) giống: cả hai đều nhận parameter là array và một hàm callback | hàm xử lý thứ ba.
2) Khác:
+ array_map(“hàm”, $array) có thứ tự parameter ngược với array_walk($array, “hàm”).
+ array_map sẽ return một array còn array_walk sẽ return boolean. nên nếu echo ra chỉ ra 1/0 thui.
Ví dụ bên dưới mình viết sẽ thấy array_map và array_walk cho kết quả giống nhau, nhưng trong hàm dùng với array_walk mình phải tạo một global biến là array để hứng data và in ra phía sau. Nếu trực tiếp print_r thì ra 1 hoặc 0 thôi. Điều này thì hàm array_walk giống y chang họ hàng nhà sort().
Thực chất array_walk() tác động vào array.
Chú ý là cả array_walk và array_map chấp nhận tham số dạng ($array, string $2nd_parameter) hoặc (string $parameter, $array) với string là tên hàm ở ngoài. Mình có thể truyền vào callback là một anonymous function như ví dụ dưới.
Kết quả
https://3v4l.org/gRl0i
Kết quả với code hơi khác https://3v4l.org/UmhdZ