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.