Hàm array_reduce
Hàm array_reduce thu gọn (reduce)
một mảng xuống một giá trị duy nhất bằng cách sử dụng callback.
Tham số đầu tiên hàm nhận một mảng, tham số thứ hai - một callback, sẽ được áp dụng lần lượt cho từng phần tử của mảng.
Tham số thứ ba không bắt buộc
là giá trị khởi tạo, từ đó
việc thu gọn mảng sẽ bắt đầu.
Mặc định tham số này có
giá trị null.
Hàm callback nhận hai tham số. Tham số đầu tiên chứa giá trị kết quả từ lần lặp trước. Trong trường hợp lần lặp đầu tiên, nó chứa giá trị của tham số thứ ba.
Còn tham số thứ hai của callback chứa phần tử hiện tại của mảng.
Callback sẽ lần lượt được áp dụng cho từng phần tử của mảng. Giá trị mà callback trả về ở lần lặp hiện tại, sẽ trở thành tham số đầu tiên của callback ở lần lặp tiếp theo.
Như vậy, callback sẽ lần lượt
áp dụng cho từng phần tử của mảng
theo thứ tự và cuối cùng thu được một
giá trị nào đó. Giá trị này sẽ là kết quả
của hàm array_reduce.
Cú pháp
array_reduce(array $array, callable $callback, mixed $initial = null): mixed
Ví dụ
Hãy tìm tổng các phần tử của mảng:
<?php
$arr = [1, 2, 3, 4, 5];
function func($prev, $elem)
{
return $prev + $elem;
}
$res = array_reduce($arr, 'func', 0);
echo $res;
?>
Kết quả thực thi mã:
15
Xem thêm
-
hàm
array_map,
áp dụng một hàm cho các phần tử của mảng -
hàm
array_walk,
gọi một hàm cho các phần tử của mảng -
hàm
array_filter,
lọc một mảng -
hàm
array_walk_recursive,
đệ quy gọi một hàm cho các phần tử của mảng