PHP array_reduce()
Hàm `array_reduce()` trong PHP
Hàm `array_reduce()` được sử dụng để giảm một mảng thành một giá trị duy nhất bằng cách sử dụng một hàm callback cho các phần tử của mảng. Hàm này rất hữu ích khi bạn muốn thực hiện phép toán tổng, tích, hoặc bất kỳ phép toán nào khác mà kết quả cuối cùng chỉ là một giá trị duy nhất.
Cú pháp
array_reduce(array $array, callable $callback, mixed $initial = null): mixed
Tham số
- $array: Mảng cần giảm.
- $callback: Hàm callback được gọi cho từng phần tử của mảng. Hàm này nhận hai tham số: giá trị tích lũy và phần tử hiện tại.
- $initial: Giá trị khởi tạo. Nếu không được cung cấp, giá trị đầu tiên của mảng sẽ được sử dụng làm giá trị khởi tạo.
Giá trị trả về
Hàm sẽ trả về giá trị duy nhất mà nó đã tính toán từ mảng thông qua hàm callback.
Ví dụ
$array = [1, 2, 3, 4, 5]; $result = array_reduce($array, function($carry, $item) { return $carry + $item; }, 0); echo $result; // Kết quả sẽ là 15
Trong ví dụ trên, hàm callback nhận vào hai tham số: $carry
(giá trị tích lũy) và $item
(phần tử hiện tại). Giá trị của $carry
bắt đầu bằng 0 (giá trị khởi tạo) và sau đó, từng phần tử của mảng sẽ được cộng dồn vào $carry
.
Ví dụ khác - Tính tích
$array = [1, 2, 3, 4]; $result = array_reduce($array, function($carry, $item) { return $carry * $item; }, 1); echo $result; // Kết quả sẽ là 24
Trong ví dụ này, chúng ta tính tích của các phần tử trong mảng, với $carry
bắt đầu là 1.
Trường hợp thao tác với mảng phức tạp
Hàm `array_reduce()` cũng có thể được sử dụng cho các mảng phức tạp như mảng đa chiều. Bạn chỉ cần đảm bảo hàm callback được viết sao cho phù hợp với cấu trúc của mảng.
Kết luận
Hàm `array_reduce()` rất mạnh mẽ và linh hoạt, có thể được áp dụng trong nhiều tình huống khác nhau khi bạn cần lấy ra một giá trị duy nhất từ một mảng. Việc hiểu rõ cách sử dụng và làm chủ hàm này sẽ giúp bạn viết mã PHP hiệu quả hơn.